1.单例设计模式
单例设计模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
1)构造方法私有化
2)声明一个本类对象
3)给外部提供一个静态方法获取对象实例
例如:
class Singleton{
private static Singletho1 s = new Singletho1();
private Singletho1(){}
public static Singletho1 getInstance(){
return s;
}
}
2.模板方法模式(Templete Method)
模板方法模式:定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变
一个算法的结构即可重新定义该算法的某些特定的步骤。
3.策略模式(Strategy Pattern)
策略模式:定义了一系列的算法,将每一种算法封装起来并可以互相替换使用,策略模式让算法独立于使用它的客户应用而独立变化
OO设计原则:
1)面向接口编程(面向抽象编程)
2)封装变化(把可变化的东西抽象出来,单独封装起来)
3)多用组合,少用继承
4)对修改关闭,对扩展开放
4.简单工厂模式
简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单使用的模式。
例如:
1 public class FactoryDemo { 2 3 public static void main(String[] args) { 4 5 Doll clothDoll = DollFactory.getInstance("cloth"); 6 if(clothDoll != null){ 7 System.out.println(clothDoll.getInfo()); 8 } 9 Doll barbieDoll = DollFactory.getInstance("barbie"); 10 if(barbieDoll != null){ 11 System.out.println(barbieDoll.getInfo()); 12 } 13 14 } 15 16 } 17 18 19 /** 20 * @ClassName: DollFactory 21 * @Description: 工厂类 22 * @date 2015年1月16日 上午11:03:18 23 */ 24 class DollFactory{ 25 //值负责产生对象 26 public static Doll getInstance (String name){ 27 //根据条件不同的对象 28 if("cloth".equals(name)){ 29 return new ClothDoll(); 30 }else if ("barbie".equals(name)){ 31 return new BarbieDoll(); 32 } 33 return null; 34 } 35 36 } 37 38 /** 39 * @ClassName: Doll 40 * @Description: 娃娃类 41 * @date 2015年1月16日 上午11:03:13 42 */ 43 interface Doll{ 44 45 public String getInfo(); 46 } 47 48 /** 49 * @ClassName: ClothDoll 50 * @Description: 布娃娃 51 * @date 2015年1月16日 上午11:03:09 52 */ 53 class ClothDoll implements Doll{ 54 55 public String getInfo(){ 56 return "我是布娃娃。"; 57 } 58 } 59 60 61 /** 62 * @ClassName: BarbieDoll 63 * @Description: 芭比娃娃 64 * @date 2015年1月16日 上午11:03:03 65 */ 66 class BarbieDoll implements Doll{ 67 68 public String getInfo(){ 69 return "我是芭比娃娃."; 70 } 71 }