Java,PHP设计模式总结

这几天在看设计模式,自己做过Java,也做过PHP,设计模式这块Java和PHP的思想是相通的.

发现一个对设计模式总结的比较好的博客:java 23种设计模式 深入理解

总结:

1.普通工厂和抽象工厂模式

1.1区别:

                 我自己的理解:普通工厂就如同工厂中的一条生产线,比如:一条生产鞋的生产线只能生产鞋(其中包括男鞋,女鞋,不同品牌的鞋,在工厂子类中可以定义鞋的属性),但是抽象工厂就如同一个服装厂,它不仅能生产鞋,还能生产衣服,帽子等等多种产品.

工厂方法模式
一个抽象产品类,可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类只能创建一个具体产品类的实例。

抽象工厂模式:
多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。
一个抽象工厂类,可以派生出多个具体工厂类。
每个具体工厂类可以创建多个具体产品类的实例。

区别:
工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。
工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。

1.2抽象工厂的优缺点:

               

抽象工厂模式的优点

  • 分离接口和实现

  客户端使用抽象工厂来创建需要的对象,而客户端根本就不知道具体的实现是谁,客户端只是面向产品的接口编程而已。也就是说,客户端从具体的产品实现中解耦。

  • 使切换产品族变得容易

  因为一个具体的工厂实现代表的是一个产品族,比如从生产鞋到生产衣服只需要切换一下具体工厂。

抽象工厂模式的缺点

  • 不太容易扩展新的产品

  如果需要给整个产品族添加一个新的产品,那么就需要修改抽象工厂,这样就会导致修改所有的工厂实现类。比如在抽象工厂中新增一种产品(毛衣),那所有工厂的实现中都要加毛衣生产的实现.

 

 

 

 

 

未完待续………………………………………………………………………………………..

 

 

 

 

 

    原文作者:挑灯夜读
    原文地址: https://blog.csdn.net/a18827547638/article/details/85049498
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞