工厂模式
代替new操作的一种模式,可以屏蔽掉一些(不适合放在构造函数中的)初始化的细节(如赋值,查询数据库等),同时也易于后期代码的统一维护
单例模式
适用于在整个jvm中只需要有一个实例的情况,具体实现方式详见:Singleton Design Pattern in Java
适配器模式
对一个接口或多个接口进行重新包装,使其能够在不在原接口代码基础上修改的情况下适应客户端的需求。一般使用的情形是旧的接口或现有的因为各种原因无法更改的接口不能满足现有的需求的情况。代码示例:Adapter in Java: Before and after
Builder模式
主要针对具有参数比较多的构造函数的类或者具有比较多的要初始化的属性的类,使用build模式可以使代码更加清晰,示例代码:android中的AlertDialog。
代理模式
也可以称之为包装模式(wrap pattern),常见的应用场景如下:
- Virtual Proxies 延迟对象的实例化,在真正使用到对象时(调用对象的某个方法等),才实例化对象。主要针对比较消耗资源的对象,如高分辨率的图像。
- Remote Proxies 通过这种方式来调用远程方法,android中调用系统服务方法便用到了这种模式
- Protection Proxies 真正的对象由于权限问题无法被直接调用时
- Smart References ? providing a sophisticated access to certain objects such as tracking the number of references to an object and denying access if a certain number is reached, as well as loading an object from database into memory on demand.
观察者模式
当对象之间存在一对多的关系时,如果一个对象发生改变,其他对象想要获得通知时,采用这种模式。