设计模式

设计模式

  1. 概念

设计模式是为解决特定场景下的问题而定制的解决方案
总之就是为解决一类面向对象的问题而总结的方案

  1. 面向对象的六大基本原则

单一职责原则(SRP,Single Responsibility Principle)
对于一个类,应该有且仅有一个引起它变化的原因

开闭原则(OCP, Open Close Principle)
软件系统中的各种组件,如模块、类。方法等,应该在不修改现有代码的基础上引入新功能。即对修改封闭,而对扩展开放。

里式替换原则(LSP,Liskpv Substitution Principle)
把父类替换为它的子类,程序的行为没有变化

接口隔离原则(ISP, Interface Segregation Principle)
客服端不应该依赖它不需要的接口,一个类对另一个类的依赖应该建立在最小的接口上。也就是说接口中的方法应该尽量的少。
例如 UITableView中的dataSource和delegate。

依赖倒置原则(DIP,Dependence Inversion Principle)
上层模块不应该依赖于下层模块,两者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
面向接口编程。

迪米特法则(LoF, Low of Demeter)
如果两个类不必彼此直接通信,他们就不应当发生直接的相互作用。如果其中一个类需要调用另外一个类的方法,可以通过第三者转发该调用。
在类的节后设计上,每个类都应当尽量降低成员的访问权限。
也叫最少知识原则(LKP,Least Knowledge Princople)或者只和直接朋友交流。

  1. 设计模式之工厂模式

单工厂模式(Simple Factory Pattern)

  • 适用场景:
    • 产品种类少
    • 用户不关注产品创建细节

优点:

工厂类包含必要的判断逻辑,用户无需了解对象创建的具体细节,有利于优化软件结构。

缺点:

1.工厂类不但要处理对象创建的细节,而且要判断创建何种对象,违背了“单一职责原则”,导致系统丧失灵活性和可维护性

2.在添加产品类型后,需要同时修改工厂类,违背了“开闭性原则”,每次都需要重新编译工厂类。

工厂方法模式(Factory method Pattern)

  • 适用场景:

    • 当一个类不知道它所需要创建的对象的类时。
    • 需要将一个对象的创建延时子类中实现时。

优点:

1遵守了依赖倒置原则

2.良好的封装性,调用者只需要知道具体的产品类,而不需要知道如何创建它

3.良好的扩展性,增加产品的时候,基本不需要修改工厂类

缺点:
增加产品类的实现,客户就增加一个特定的工厂子类。

抽象工厂模式(Abstract Factory Pattern):待续

阅读更多
个人分类: 设计模式
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

设计模式

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭