最近在 http://www.runoob.com/design-pattern/abstract-factory-pattern.html 上学习设计模式的使用。
工厂模式属于创建型模式。创建型模式提供了一种创建对象的同时隐藏创建逻辑的方法,简单理解就是,对alloc一个对象的代码进行封装。
工厂模式:意图定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。我们明确地计划不同条件下创建不同实例时,可以使用工厂模式,让子类实现工厂接口.
优点:1.一个调用者想创建一个对象,只要知道其名称就可以了
2.扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以
3.屏蔽产品的具体实现,调用者只关心产品的接口
缺点:每次增加一个产品时,都需要增加一个具体的类和对象实现工厂,使系统中类的个数成倍增加,在一定程度上增加了系统的复杂度
秉承学以致用的思路,认真思考了在开发中,那些地方可以用这个模式,经过思考后,想到网络请求模块可以封装为工厂模式
基本上,任何一个项目都需要网络请求,将所有网络请求写在一个类中,随着项目的进行,这个类会慢慢的变的臃肿,可读性变差,维护成本慢慢增加。
假如,创建一个接口工厂用于处理所有接口类创建逻辑.可能包括类如下情况
base class:处理所有接口加密逻辑、头信息、固定接口信息等
user class:处理用户类信息。注册、登录、个人资料、修改个人资料等
topic class:处理帖子类信息。发帖、删帖、帖列表、帖详情
comment class:处理评论类。发评论、删评论、评论列表、评论详情等
其它项目相关请求类
接口工厂中对上述请求类进行创建封装,通过接口工厂,可以拿到所有具体实现类.个人感觉,可以将相关类写成单例形式,因为这些类其中未牵扯到属性。
本人一纯粹菜鸟,如果理解烂或可以引申,请帮忙指出。感谢!