接口(工廠模式):

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();
	}
}

 

 總結:java

一、以上實例即爲一種「簡單工廠」模式this

二、思路爲定義一個與實現類分離,與接口耦合的類,裏面調用接口方法blog

三、再經過接口與實現類多態的原理,定義一個獲取接口類型的實現類實例的類工廠接口

四、之後若是對實現類有所替換或改動,只須要從新定義實現類,再在類工廠中獲取接口類型的實現類實例的方法中,指向從新定義的實現類便可,不須要改動原來的實現類隊列

相關文章
相關標籤/搜索