代码实现: https://github.com/why19970628/go_practice/tree/master/design_pattern
导读
1. 设计模式
设计模式是对软件设计中普遍存在或反复出向的各种问题所提出的解决方案。每一个设计模式系统地被命名、解释和评价了面向对象系统中一个重要和重复出现的设计。
2. 设计模式的分类
创建型模式:工厂方法模式、抽象工厂模式、创建者模式、原型模式、单例模式。隐藏底层模块的逻辑,关注怎么创建对象
。
结构型模式:适配器模式、桥模式、组合模式、装饰模式、外观模式、享元模式、代理模式。类之间如何协同工作,应该组成什么结构
。
行为型模式:解释器模式、责任链模式、命令模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式、模板方法模式。关注行为,也就是方法,应该怎样某些行为
。
3. 面向对象
设计模式解决的就是面向对象中的问题。需要指导面向对象的三大特性是 封装、继承和多态
,封装是把数据和方法封装到类中,继承是类之间复用代码。
设计模式实现
创建型
1.单例模式
2.简单工厂
3.工厂方法
4.抽象工厂
简单工厂、工厂方法、抽象工厂区别
-
简单工厂模式
是由一个工厂对象创建产品实例,简单工厂模式的工厂类一般是使用静态方法,通过不同的参数的创建不同的对象实例
可以生产结构中的任意产品,不能增加新的产品 -
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类,生产多个系列产品
生产不同产品族的全部产品,不能新增产品,可以新增产品族