设计模式

以下是学习了设计模式之后的一些笔记,主要阅读的是《设计模式之禅》

六大设计原则

1. 单一职责原则

2. 里氏替换原则

3. 依赖倒置原则

4. 接口隔离原则

5. 迪米特法则

6. 开闭原则

23种设计模式

1. 单例模式

单例模式的定义如下:

Ensure a class has only one instance, and provide a global point of access to it.(确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。)

简单讲就是通过定义一个私有访问权限的构造函数,避免被其他类new出来一个对象,而这个类自己可以new一个对象出来,然后定义一个getInstance()方法,其他类用的时候可以通过getInstance()方法获取。

public class A {

    //private static final确保了A在系统中只有一个对象
    private static final A a = new A();

    private A(){

    }

    public static A getInstance(){
        return a;
    }
    
    public static void doOther(){
        //类中其他方法尽量也使用static修饰
    }
}

2. 工厂方法模式

Define an interface for creating an object,but let subclasses decide which class toinstantiate.Factory Method lets a class defer instantiation to subclasses.(定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。)

  1. 简单工厂模式

简单工厂模式又叫静态工厂模式,因为工厂中定义了一个静态方法,将类实例化操作和类的使用分开,即使用者可以直接使用而不需要知道这个其中的生成过程。

这个模式的缺点是一旦这个工厂类不能工作会导致整个系统都无法工作,违背了开放--关闭原则。

  1. 工厂方法模式

*步骤1: 创建抽象工厂类,定义具体工厂的公共接口;
*步骤2: 创建抽象产品类 ,定义具体产品的公共接口;
*步骤3: 创建具体产品类(继承抽象产品类) & 定义生产的具体产品;
*步骤4:创建具体工厂类(继承抽象工厂类),定义创建对应具体产品实例的方法;
*步骤5:外界通过调用具体工厂类的方法,从而创建不同具体产品类的实例

3. 抽象方法模式

4. 模板方法模式

5. 建造者模式

6. 代理模式

7. 原型模式

8. 中介者模式

9. 命令模式

10. 责任链模式

11. 装饰模式

12. 策略模式

13. 适配器模式

14. 迭代器模式

15. 组合模式

16. 观察者模式

17. 门面模式

18. 备忘录模式

19. 访问者模式

20. 状态模式

21. 解释器模式

22. 享元模式

23. 桥梁模式

原文地址:https://www.cnblogs.com/charlottepl/p/12976827.html