您的位置:首页 > 编程语言 > PHP开发

PHP中的设计模式-简单工厂,静态工厂,工厂方法,抽象方法的关系

2018-02-06 17:45 811 查看
再次陈述:所有设计模式的核心是要满足以下需求:

 当业务扩展时, 尽可能不要修改原有代码.  (尤其是原来的程序员没写注释和文档的时候)

静态工厂:

 这个最简单. 就是把创建对象这一过程封装到工厂类中, 不再直接生成对象,而是由工厂 来生成对象.

 我们只对工厂提出创建要求.而且创建过程较为简单, 一个静态方法的调用即可创建产品对象的情况下,

 我们就应该采用静态工厂模式. 当然创建过程中允许再次调用工厂类的其它静态方法,以分解创建逻辑.

简单工厂:

 这个比静态工厂复杂一点, 这名字起的太不友好了.

 当产品的创建过程较为复杂, 即,无法用工厂类的一个静态方法来解决的时候, 我们采取以下步骤:

构造一个工厂对象, 然后对工厂对象传递参数,创建一些工厂对象的属性,之后 才能创建产品对象.

 再构造另一个工厂对象,然后传递不同的参数,创建另一个/另一批产品对象.

工厂方法模式:
比简单工厂模式再复杂一些, 看. 这名字还是误导观众.

       对简单工厂情况进一步扩展, 工厂类总是在扩展,总是在修改,这个不好. 那么 我们 定义好工厂类的基类后,

 由工厂类的子类完成具体的创建过程,这样每个工厂类的子类就可以更加个性化的创建产品对象了.

抽象工厂模式:

 比上一个再进一步. 现在我们考虑多种产品(N)的情况 .

 每种产品有一个基类,以约束此种产品的共性.

 上面我们已经有多个工厂子类了(M), 现在我们的每一个工厂子类都可以创建每一种产品, 当然,都可能有所差别.

M x N  我们现在要定义好这么多个具体的产品类, 每个工厂生成N个产品的本厂版本.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐