七大软件设计原则与常见设计模式
七大软件设计原则
常见设计模式
1. 工厂模式
- 简单工厂模式
简单工厂是指由一个工厂对象决定创建出哪种产品类的实例,他不属于GOF 23种设计模式。适用于工厂类负责创建的对象较少的场景,并且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不关心。
- 工厂方法模式
指定义一个创建对象的接口,让这个接口的实现类决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。用户只用关心所需产品对应的工厂,无需关心创建细节,加入新的产品符合开闭原则。
- 抽象工厂模式
指提供一个创建一系列相关或相互依赖的接口,无须指定他们具体的类。
总结:
简单工厂--》产品的工厂
工厂方法--》工厂的工厂
抽象工厂--》复杂产品的工厂
作业:用工厂模式设计支付业务场景,包含跨境支付,支付宝、微信、银联支付,并画出类图。
2. 单例模式
单例模式是确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点。
- 饿汉式单例
在类加载的时候就立即初始化
- 懒汉式单例
在使用时才会被初始化
- 注册式单例
- 枚举式单例
- 容器式单例
3. 原型模式
原型模式是指原型实例指定创建对象的种类,并通过拷贝这些原型创建新对象,属于创建型模式。(浅拷贝,深拷贝)
4. 建造者模式
将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示,属于创建型模式。
- 适用于创建对象需要很多步骤,但是步骤的顺序不一定固定。可以将复杂对象创建与使用进行分离。
建造者模式和工厂模式的区别
- 建造者模式注重方法的调用顺序,工厂模式注重创建对象。
- 建造者模式创建复杂对象由各种复杂的部件组成(可以选配),工厂模式出场都一样。
- 关注点不一样,工厂只关注把对象创建出来,建造者还需要知道对象由哪些部件组成。