1、工厂模式:一个接口、实现接口的各种实体类、工厂类,通过参数创建不同的实体类。
2、抽象工厂模式:多个接口、多个接口的各种实体类、抽象工厂类,包含创建不同实体类的抽象方法、抽象工厂类的各种子类工厂类,通过不同参数创建相应接口的实体类。
3、单例模式:
1)懒汉式:静态依赖自身,静态方法getInstangce方法判断是否存在,否则创建对象。(lazy初始化,非线程安全,可将getInstance方法加synchronized)
2)饿汉式:static静态创建自身对象,getInstance方法直接返回以创建的对象(非lazy初始化,线程安全)
3)双重校验锁:静态依赖volatile类型的自身,getInstance方法先判对象是否存在,不存在对自身对象加锁再判是否存在,不存在创建对象(lazy初始化,线程安全)
4)静态内部类:静态SingletonHolder方法返回自身final类型对象,getInstance方法静态且final返回SingletonHolder中final型的自身对象(lazy初始化,线程安全)
5)枚举:(非lazy初始化,线程安全)
public enum Singleton {
INSTANCE;
public void whateverMethod() {
}
}
4、适配器模式:原接口及其实现类,需要适配的接口及其实现类,适配器类实现原接口且依赖需要适配的接口,工作类实现原接口且依赖适配器类。
5、桥接模式:一个接口及其实现类,一个抽象类依赖接口,抽象类子类根据不同参数进行不同的操作。
6、过滤器模式:一个过滤器接口及其实现类,过滤目标类。
7、组合模式:一个组合模型类,包含自身对象的列表。
8、装饰器模式:一个接口及其实现类,继承该接口的抽象装饰类并依赖该接口,实体装饰类根据不同上面接口实现类作为参数参数实现不同动作。类似继承。
9、外观模式:一个接口及其实现类,一个外观类依赖接口的实现类。通过外观类作为统一的访问接口方式。
10、享元模式:一个接口及其实现类,一个工厂类包含该实现类的hashmap,工厂类生产对象时,如果没有则新建对象存储在hashmap中并返回,有则直接返回。
11、静态代理模式:一个接口及其实现类,一个代理类实现该接口且依赖接口实现类。
12、责任链模式:一个抽象类包含对自己的依赖(代表责任链中的下一个元素)及其各种子类。
13、命令模式:一个命令接口及其实现具体的命令类(依赖请求类),一个命令请求类,一个调用对象类(依赖命令接口)
14、解释器模式:一个接口及其各种实现类(定义作为上下文主要解释器和其他(依赖接口),用于创建组合式表达式)
15、迭代器模式:一个叙述导航方法的Iterator接口(包含hasnext方法和next方法),一个返回迭代器Container接口,实现Container接口的实体类包含一个实现Iterator的内部类
16、中介者模式:一个中介类中介方法中包含user类入参,user类调用中介类中的方法
17、备忘录模式:三个类,一个包含要被恢复对象的状态,一个创建状态并存储起来,一个负责恢复状态
18、观察者模式:一个Subject类带有一个存放观察者的List和绑定观察者到Client对象和从Client对象解绑观察者的方法,抽象Observer类依赖Subject接口及其子类Client类(初始化时将对象添加到Subject的观察者List中)
19、状态模式:一个接口(方法入参Context)及其各种实现类,实现类将自身传递给Context类
20、空对象模式:一个抽象类和及其真子类和空子类,一个工厂类返回真实对象或者空对象
21、策略模式:一个接口及其各种实体策略类,一个Context使用了某种策略的类且依赖接口
22、模版模式:一个抽象类其中模版方法定义为final型,及其子类
23、访问者模式:一个接受操作的接口及其各种实现类,一个访问者接口及其实现类,上个接口实现类方法以访问者接口为参数并将自身传递给访问者