设计模式总结与对比(作业)

1、设计模式的初衷是什么?有哪些设计原则?开闭原则依赖倒置原则单一职责原则接口隔离原则迪米特原则里氏替换原则合成复用原则2、列举至少4种单例模式被破坏的场景并给出解决方案多线程解决办法:改写DCL双重锁的写法使用静态内部类的写法指令重排解决办法:加volite关键字克隆解决办法:在单例对象中重写cl

建造者模式

定义建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示特征:用户只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解属于创建型模式设计中四个角色产品(Product):要创建的产品类对象建造者抽象(Builder):建造者的抽象类,规范产品对象的各个组成部

原型模式

定义原型模式时指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,属于创建型模式应用场景类初始化消耗资源较多new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等)构造函数比较复杂循环体中生成大量对象时优点性能优良,Java自带的原型模式是基于内存二进制流的拷贝,比直接new一个对

单例模式

定义确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点饿汉式单例优点:执行效率高、性能高、没有融合的锁缺点:某些情况下,可能会造成内存浪费常规写法public class HungrySingleton { private static final HungrySingleton