1.工厂模式

1.创建一个接口 Fruit
设计模式的开发
2.创建一个类实现以上接口并重写其方法
设计模式的开发
3.创建一个工厂类,这里结合了反射机制
设计模式的开发
调用
设计模式的开发

2.原型模式

创建一个类,实现Cloneable接口
设计模式的开发
注意:
原型模式只对八种基本数据类型以及他们的封装类进行深拷贝。类似数组,集合,容器对象,引用对象我们可以通过以下形式对其进行深拷贝

继承ProtoType,做模板类
设计模式的开发
然后我们用一个循环创建concreteProtoType对象
设计模式的开发
总结:使用原型模式创建对象比直接new一个对象在性能上要好的多,因为Object类的clone方法是一个本地方法,它直接操作内存中的二进制流,特别是复制大对象时,性能的差别非常明显。

3.装饰者模式

装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为。
定义被装饰者(星巴克基类):
设计模式的开发
初始化被装饰者,有一些自己的装饰,这里在不加任何装饰前,被装饰者只是一杯白开水
设计模式的开发
定义装饰者,装饰者是调料例如:奶粉,咖啡豆等
设计模式的开发
定义具体的装饰类,加了奶粉的水变成了奶茶,加了咖啡豆的水变成了咖啡,对水进行装饰
设计模式的开发
设计模式的开发
调用:创建一个已经初始化的基类,用装饰者来装饰它
设计模式的开发

4.中介者模式

通过设置A来影响B
创建一个抽象的中介者类
设计模式的开发
具体逻辑实现
设计模式的开发
创建A和B共同的抽象类,通过抽象方法,在子类继承时,重写该方法时影响同事类
设计模式的开发
设计模式的开发
设计模式的开发
调用:
设计模式的开发
1.每个对象都会在自己的状态发生改变时,告诉中介者
2.每个对象都会对中介者所发出的请求作出回应
3.通过将对象彼此解耦,增强对象的复用性
4.将控制逻辑集中,简化了系统维护

5.观察者模式

为所有具体的观察者定义一个接口
设计模式的开发
子类实现接口,在得到主题的通知时更新自己。
设计模式的开发
抽象被观察者角色,把所有对观察者对象的引用保存在一个集合中,每个被观察者角色都可以有任意数量的观察者。被观察者提供一个接口,可以增加和删除,通知观察者角色状态改变。
设计模式的开发
具体的被观察者去继承Subject,做具体实现
设计模式的开发
调用:
设计模式的开发

相关文章:

  • 2021-09-03
  • 2022-12-23
  • 2021-10-22
  • 2021-10-09
  • 2022-12-23
  • 2021-06-16
  • 2021-06-10
  • 2021-08-06
猜你喜欢
  • 2022-01-08
  • 2021-06-16
  • 2021-12-14
  • 2022-12-23
  • 2021-06-09
  • 2022-01-16
  • 2022-12-23
相关资源
相似解决方案