用于面试,简单回答:
1 策略模式:
定义个策略接口,不同的实现类提供不同的具体策略算法, 同时它们之间可以互相替换.
2 简单工厂模式
定义一个用以创建对象的工厂, 根据不同的条件生成不同的对象。
3 抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式 又称为Kit模式,属于对象创建型模式。
(Retorfit中有用到 在CallApdater中有一个abstract Factory类)
4 装饰者模式
动态的给一个对象添加一些额外的功能(Java IO流)
5 代理模式
封装被代理对象并限制外界对被代理对象的访问(Retrofit中的 Retrofit.create()就会生成一个动态代理对象)
6 适配器模式
将一个类的接口转换成客户希望的另一个接口(Android中RecycleView中的Adapter类就实现了适配器模式)
7 建造者模式
将一个复杂对象的构建与它的表示分离.(用到Bulid()方法的类大部分都是这个设计模式,比如OKHttpClient)
8 观察者模式
定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者.(RxJava)
9 单例模式
保证一个类仅有一个实例,并提供一个访问它的全局控制点.