![]() |
1
10
艾克。Stevan有一个非常令人信服的论点
你可能想看看 MooseX::AbstractFactory . 如果这对你不起作用,那么:
当然,还有很多其他方法可以在驼鹿身上实现这一概念。不知道你的领域问题的具体情况,很难知道 MooseX::Traits 不会更好的:
这大致就是另一个海报关于使用基于角色的解决方案的意思。 |
![]() |
2
5
你可以简单地做:
如果这更容易或更好,由你来决定。 |
![]() |
3
5
只是一些答案的注释:
打电话
我赞成不允许
然后,当您想要创建一个文本消息时:
当要分析字符串并返回正确的消息子类时:
最后,如果无法创建消息实例,那么它不应该是类。它应该是一个角色。 当然,您可以使用其他对象处理建筑。只需确保另一个对象只负责理解字符串格式,而不是消息内部:
现在,您不再关心让一些“超类”负责构建“子类”,我认为这是更好的设计。(记住,messagestring对执行“message”的类没有特殊的能力。这是这里的关键;它只负责理解字符串化消息。) 不管怎样,现在你只是:
(你知道“MVC”?这是相似的。) |
![]() |
4
4
好吧,当
您可能总是希望从基于继承的模型切换到基于角色的模型,在该模型中创建所需的对象(而不是将类传递到工厂类中),然后应用公共角色。 |
![]() |
5
3
只需使用另一个工厂对象来构造该类的对象。 更简单、更灵活、更可靠等。
my$object=$factory->新建对象(…各种参数…);
哪里
当您发现在下一步中需要相互依赖的对象时,请寻找控制框架的反转。 |
![]() |
Håkon Hægland · 创建自定义Moose属性类型 7 年前 |
![]() |
incutonez · Perl:在Moose类中添加编写器会拒绝属性访问 11 年前 |
![]() |
varnie · Perl内部和Moose:持续折叠优化 11 年前 |