设计模式介绍
创建型模式:针对对象的创建方式
简单工厂模式、工厂方法模式、抽象工厂模式、创建者模式、原型模式、单例模式。
结构性模式:针对对象组成结构的操作
外观/门面模式、适配器模式、代理模式、装饰模式、桥梁/桥接模式、组合模式、享元模式。
行为型模式:针对对象行为的操作模式
模板方法模式、观察者模式、状态模式、策略模式、职责链模式、命令模式、调停者模式、备忘录模式、迭代器模式、解释器模式。
代码实例
单例模式
- 生活案例:
国家施行的计划生育政策,规定一对夫妇只生一胎,刚结婚时,确定生一胎,生完后无论如何不能再生,否则违背国家政策。 - 程序概念:
所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。
class Singleton {
private static Singleton instance = new Singleton();// 饿汉式
public static Singleton getInstance() {
return instance;
}
private Singleton() { // 构造方法封装为私有化
}
}
public class Test2 {
public static void main(String args[]) {
Singleton s1 = Singleton.getInstance(); //两个对象一致
Singleton s2 = Singleton.getInstance();
}
}
简单工厂模式
- 生活案例:
一个卖肉工厂可以生产猪肉、狗肉、羊肉、牛肉等,工厂很清楚有哪些的产品,所以我们只需要工厂提供即可 - 程序概念:
简单工厂又叫静态工厂,由一个工厂对象决定创建哪一个产品对象
public class Factory {
public static int PIG_TYPE = 1;
public static int DOG_TYPE = 2;
public static Animal getAnimal(int flag) {
if (flag == PIG_TYPE) {
return new Pig(); //获取猪肉对象
} else if (flag == DOG_TYPE) {
return new Dog(); //获取狗肉对象
}
return null;
}
}
public class Test2 {
public static void main(String args[]) {
//获得狗肉对象
Animal a = Factory.getAnimal(Factory.DOG_TYPE);
}
}