【发布时间】:2011-12-20 20:42:45
【问题描述】:
我正在为业务对象编写一个框架。我大量使用接口是因为:
1) 自动内存管理
2) 关注点分离
通常构造函数有一些参数是框架的对象,但我不能将它们放在接口中。
我的问题是,如果我使用接口来分离实现它们的类的关注点,为什么我的代码最终仍绑定到实现接口以调用构造函数及其参数的具体类..和
将创建者代码放入工厂方法有什么好处? (我还没有使用的东西..)
谢谢!
=== 编辑 ===
我的问题的重点是构造函数的参数。在框架中,许多对象需要其他一些才能工作。答案很好地解决了关注点分离的问题,但我仍然不明白如何解决参数问题..
如果我不采用构造方法,我应该在对象的每个方法中采用“过程初始化”方式(在接口中)和“CheckObjectInitialized”(受保护)。这样会更干净吗?
【问题讨论】:
-
我要补充(3)单一责任原则,这实际上只是对第(2)点的重述,它使解耦设计成为可能。如果您有 (1) (2) (3),那么 Factory 显然是创建职责的单一责任“所有者”。
-
您需要使用工厂或依赖注入。依赖注入是一种更现代的方法,但由于泛型,它需要 Delphi 2010 或更高版本。我的博客可能对工厂实现的基础知识有所帮助 - informativearchitecture.wordpress.com/2011/10/04/… 但您应该在此处查看 Nick Hodges 博客 goo.gl/u7GNb 以获得此类问题的理想解决方案。
标签: delphi interface constructor