设计模式

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、访问者模式:一个接受操作的接口及其各种实现类,一个访问者接口及其实现类,上个接口实现类方法以访问者接口为参数并将自身传递给访问者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值