设计模式
设计模式(Design Pattern) 是一套被反复使用,为多数人知晓,经过分类编目的、代码设计经验的总结。
问:为什么使用设计模式?
答:设计模式的目的是为了代码重用,避免程序大量修改,同时使代码更易于理解,并且保证代码的可靠性。
显然设计模式不管是对自己还是对他人还是对系统都是有益的。
23种经典设计模式
一、创建型
1、Factory method 工厂方法
2、abstract Factory 抽象工厂
3、Builder 生成器
4、 Prototype 原型
5、Singleton 单例
二、结构形
1、Adapter_Class 适配器类
2、Adapter_Object 适配器对象
3、Bridge 桥接
4、Composite 组合
5、Decorator 装饰
6、Facade 外观
7、Flyweight 享元
8、Proxy 代理
三、行为型
1、Interpreter 解释器
2、TRemplate Method 模板方法
3、Chain of Responsibility 职责链
4、Command 命令
5、Iterator 迭代器
6、Mediator 中介者
7、Memento 备忘录
8、Observer 观察者
9、State 状态
10、Strategy 策略
11、Visitor 访问者模式
问:什么是单例模式
答:在某种情况下,有些对象只需要一个就行了,即每个类只需要一个实例。
例如打印机,一台计算机可以连接多台打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机,即在整个的打印过程中指有一个打印程序的实例。
实现一个简单的单例模式
public class Test{
private Test(){}
private static Test uniqueInstance = new Test();
public static Test getinstance(){
return uniqueInstance;
}
}
如果采用按需实例化的方法,就需要考虑多线程的同步问题。
问:什么是工厂模式
答:工厂模式专门负责实例化有大量公共接口的类 。工厂模式可以动态块决定将哪一个类实例化,而不必事先知道每次要实例化哪一个类。客户类和工厂类是分开的。消费者无论什么时候需要某种产品,需要做的只是向工厂提出请求即可。
工厂模式包含以下几种形态
1、简单工厂(Simple Factory)模式。简单工厂模式的工厂类是根据提供给它的参数,返回的是几个可能产品中的一个类的实例,通常情况下,它返回的类都有一个公共的父类和公共的方法。
其中,Product为待实例化类的基类,它可以有多个子类,简单工厂类中提供了实例化Product的方法。
2、工厂方法(Factory Method)模式。工厂方法模式是类的创建模式,其用意是定义一个用于创建产品对象的工厂的借口,而将实际创建工作推迟到工厂接口的子类当众。多态的使用,使得工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点。
3、抽象工厂(Abstract Factory)模式。抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式指当有多个抽象角色时使用的一种工厂模式,抽象工厂模式可以向客户提供一个借口,使得客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。