设计模式:
是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结。使用设计模式目的是为了提高代码的可重用性,让代码更容易被他人理解,使系统质量更加有保证、系统更加可靠。
分类:按照目的分为创建型模式、结构型模式、行为型模式
创建型模式:工厂方法模式、抽象工厂模式、建造者模式、原型模式、单例模式;
结构型模式:适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式;
行为型模式:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。
工厂方法模式:
定义一个创建产品对象的工厂接口,让子类决定实现哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中去核心工厂不再负责具体产品的创建。
设计原则:开闭原则、依赖倒置原则
使用场合:子类型可能会很多,以后需要不断增添不同子类实现时;当一个系统尚在框架设计阶段,还不知道将来需要实例化哪些具体类时;系统设计之初不要要或者没有具体对象的概念。
抽象工厂模式:
提供一个接口,用于创建相关或者依赖对象的家族,而不需要指定具体实现类。
设计原则:多用对象组合,少用继承;针对抽象编程,不针对实现编程;产品对象通过工厂暴露的方法创建,具体工厂创建具体产品。
使用场合:创建产品家族。相关产品集中在一起使用的时候;想要提供一个产品类库,并只想显示接口而不是实现;通过组合的方式使用工厂。
工厂方法与抽象工厂的比较:
区别:工厂方法通过继承的方式实现应用程序的解耦,抽象工厂通过对象组合的方式实现应用程序解耦;工厂方法模式用来创建一个抽象产品,具体工厂实现工厂方法来创建具体产品,而抽象工厂模式用来创建一个产品家族的抽象类型。
联系:抽象工厂模式中的将具体工厂就是通过工厂方法模式创建的产品。
建造者模式:
将复杂对象的创建与表示分离,使得同样的构建过程可以创建不同的表示。
设计原则:分步骤创建复杂对象,使构建复杂对象变得不那么复杂;构建和表示分离,更好地适应外部需求的变化;单一职责原则,提高软件内部的聚合度,降低模块之间的耦合度。
使用场合:当生成的产品对象内部具有复杂的结构时;当复杂对象需要与表示分离,可能需要创建不同的表示时;当需要向客户隐藏产品内部结构的表现时。
与抽象工厂模式的区别:建造者模式着重于分步骤构造一个复杂的对象,抽象工厂模式则着重于多个系列的产品对象即对象族的构造;建造者在最后一步返回具体产品,抽象工厂模式则是立即返回具体产品。
单例模式:
Copyright © 2019- zrrp.cn 版权所有 赣ICP备2024042808号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务