接口(工厂模式):
import static java.lang.System.*;
//-接口
interface OutPut{
	int MAX_CACHE_LINE=50;
	void out();
	void getData(String mes);
}
//-实现类 实现接口
class Printer implements OutPut{
	private String[] printData = new String[MAX_CACHE_LINE];
	private int dataNum=0;
	public void out(){
		while(dataNum>0){
			out.println("打印机打印:"+printData[0]);
			arraycopy(printData,1,printData,0,--dataNum);
		}
	}
	public void getData(String mes){
		if(dataNum>=MAX_CACHE_LINE){
			out.println("输出队列已满,添加失败!");
		}else{
			printData[dataNum++]=mes;
		}
	}
}
//-与接口耦合 与实现类分离
class Computer{
	private OutPut out;
	public Computer(OutPut out){
		this.out=out;
	}
	public void keyIn(String mes){
		out.getData(mes);
	}
	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 cp=new Computer(of.getOutPut());
		cp.keyIn("张三李四");
		cp.keyIn("王五赵六");
		cp.print();
	}
}
总结:
1、以上实例即为一种“简单工厂”模式
2、思路为定义一个与实现类分离,与接口耦合的类,里面调用接口方法
3、再通过接口与实现类多态的原理,定义一个获取接口类型的实现类实例的类工厂
4、以后如果对实现类有所替换或改动,只需要重新定义实现类,再在类工厂中获取接口类型的实现类实例的方法中,指向重新定义的实现类即可,不需要改动原来的实现类
    热心技术,并兼吃喝,偶谈风月,不言国事.
                    
                
                
            
        
浙公网安备 33010602011771号