您的位置:首页 > 编程语言

面向接口编程(简单工厂模式)和单列设计模式

2015-07-05 20:03 344 查看
1.简单工厂模式。假如让computer类组合一个printer对象,如果有一天系统需要重构,需要使用Butterpriner来代替printer,这就需要打开computer类源代码进行修改。这样导致很不方便。为了避免这个问题,工厂模式建议让computer类组合一个output类型对象,将computer类与printer类完全分离。

代码举例:public class Computer{
private Output out;
public Computer(Output out){
this.out=out;
}
//定义一个模拟获取字符串输入的方法
public void keyIn(String msg){
out.getData(msg);
}
public void print(){
out.out;
}
}

public class OutputFactory{
public Output getOutput(){
return new Printer();
}
public static void main(String[] args){
OutputFactory of=new  OutputFactory();
Computer c= new Computer(of.getOutput());

}

}

public class BetterPrinter implements Output{

}

总结:上面的BetterPrinter类实现了Output接口,因此也可当成output对象使用,于是只要把outputFactory工厂类的getoutput()方法中代码改为:return new BetterPrinter();

2.单列设计模式
单列设计模式:解决一个类内存只存在一个对象,想要保住唯一的对象。也加饿汉模式。
对象是方法被调用时,才初始化,也叫做延时加载。signle类进内存,对象还没有存在,只有调用getInstance方法时才建立对象。记住原则,定义单列建议使用饿汉式。
代码举例:
class single
{
private single s=null;
private single(){}
public static single getInstance()
{if(s==null)
{
synchronized(single.class)
{if(s==null)
s=new.single();
}
}
}
}
或public static synchronized single getInstance(){}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: