设计模式
1.单例模式
2.工厂模式
3.适配器模式
4.观察者模式
1.单例模式
某些情况下,对象只要一个就够了。即每个类只需要一个实例。
简单来说单例模式可以保证整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(也可以不存在)
单例模式确保某一个类只有一个实例,而且自行实例化。并向整个系统提供这个实例单例模式。
使用单例模式,需要注意的是。单例模式用来保证系统中一个类只有一个实例。单例类的构造函数必须为私有,同时单例类必须提供一个全局访问点。
public class Test {
private Test() { }
private static Test uniqueInstance = new Test();
public static Test getInstance(){
return uniqueInstance;
}
}
使用这种方法实现单例模式,在类被加载时就会实例化这一个对象。
2.工厂模式
工厂模式专门负责实例化有大量公共接口的类。工厂模式可以动态的决定将哪一个类实例化,而不必事先知道每次要实例化哪一个类。客户端和工厂类是分开的。消费者无论什么时候需要某种产品,需要做的只是向工厂提出请求即可。消费者无需修改就可以接纳新产品。当然也存在小缺陷。当产品修改时,工厂类也要修改。
工厂模式包含以下几种形态:
a:简单工厂模式。简单工厂模式的工厂类是根据提供给他的参数,返回的是几个可能的产品中的一个类的实例。通常情况下,他返回的类都有普一个公共的父类和公共的方法。
b:工厂方法模式。工厂方法模式是类的创建模式,其用意是定义一个用于创建对象的工厂的接口,而将实际创建工作推迟到工厂接口的子类中。
c:抽象工厂模式。抽象工厂模式是所有形态的工厂模式中最具有一般性,也是最抽象的形态。抽象工厂模式指当有多个抽象角色时使用的一种模式,抽象工厂模式可以向客户端提供一个接口。使客户端在不必指定产品的具体的情况下,创建多个产品族中的产品对象。
3.适配器模式
适配器模式也称变压器模式,他是把一个类的接口转换成客户端所期望的另一种接口。从而使原本因接口不匹配而无法一起工作的两个类能一起工作。适配类可以根据所传递的参数返回一个合适的实例给客户端。
适配器模式主要应用于“想复用一些现存的类,但是接口又与复用环境要求不一致”的情况。在遗留代码复用,类库迁移等方面很有用。
4.观察者模式
观察者模式也叫(发布/订阅)模式,提供了避免组件之间紧密耦合的一种方法。他将观察者和被观察的对象分离开来。在该模式中,一个对象通过添加一个方法(该方法允许另一个对象,即观察者注册自己)使本身变得可观察。当可观察的对象更改时,它会将消息发送到已注册的观察者。这些观察着使用该信息执行的而操作与可观察的对象无关,结果是对象可以相互对话。这些观察者使用该信息执行的而操作与可观察的对象无关,接受过是对象可以对话,而不必了解原因。