Ios 使用工厂类实例化一组相关的具体类
对于我目前正在从事的个人项目,我使用依赖注入和TDD作为开发的基础。我还使用factory类实现以下功能:Ios 使用工厂类实例化一组相关的具体类,ios,dependency-injection,tdd,factory,Ios,Dependency Injection,Tdd,Factory,对于我目前正在从事的个人项目,我使用依赖注入和TDD作为开发的基础。我还使用factory类实现以下功能: 关注点分离:将对象创建的责任与应用程序逻辑代码分离。单点对象创建 使单元测试更容易,因为我可以模拟工厂创建的对象 连接:将某些依赖项/服务注入到它所创建的对象中,而不必让客户机代码参与 我理解工厂类通常应该负责实例化一个特定的类型,并且当在运行时动态创建不同类型的实现时,它的有用性变得非常明显,但是,我并不是专门为此目的使用工厂的;我的理由是上面列出的那些。为了避免过度使用,我没有为每
- 关注点分离:将对象创建的责任与应用程序逻辑代码分离。单点对象创建
- 使单元测试更容易,因为我可以模拟工厂创建的对象
- 连接:将某些依赖项/服务注入到它所创建的对象中,而不必让客户机代码参与
@interface TagsFactory : NSObject
/*
* Create a new tag with the specified name
*/
-(id<Tag>) createTagWithName:(NSString*) name;
/*
* Create a new TagsViewController with preselected tags.
*/
-(TagsViewController*) createTagViewControllerWithSelectedTags:(NSArray*) selectedTags;
/*
* Create a new TagsView
*/
-(TagsView*) createTagsView;
@end
@接口标记工厂:NSObject
/*
*使用指定的名称创建新标记
*/
-(id)createTagWithName:(NSString*)名称;
/*
*使用预选的标记创建新的标记viewcontroller。
*/
-(TagsViewController*)创建TagViewControllerWithSelectedTags:(NSArray*)selectedTags;
/*
*创建一个新的标记视图
*/
-(TagsView*)创建TagsView;
@结束
然后,如果某个特定类需要构造其他对象,我将负责这些对象的工厂类注入该类,以便将对象创建委托给该类
我的方法的缺点:
- 工厂类可能与许多其他类高度耦合
- 工厂等级可能违反单一责任原则
- 你的班级结构是什么李>
- 你能提供你所选择的另一条路线吗 谈论使用更多工厂类
哦,更好的链接:开始和一嗨,很抱歉延迟回复。回答您的问题:a)给定工厂创建的类仅通过它们所服务的函数相关,如我的示例中的标记。他们之间没有具体的等级制度;b) 另一种选择是让每个工厂类只用于创建一个特定类型(单一职责),但这意味着工厂类的激增,我希望避免这种情况。所以我只是想知道我将相关对象的创建集中到一个工厂类中的方法是否合适。谢谢你的链接,非常有用的信息:)np。如果您还有其他问题,请告诉我