背景:开发一台打印机程序,能控制三台(可能会增加至一百台)打印机,每台打印机都有最基本的开机、打印、关机三个功能,且三个功能的实现都不相同。
建立打印机接口
interface Printer{
public void open();
public void print(String s);
public void close();
}
分别建立三台打印机
class HPPrinter implements Printer{
public void open(){
System.out.println("HP open");
}
public void print(String s){
System.out.println("HP print:"+s);
}
public void close(){
System.out.println("HP close");
}
}
class CanonPrinter implements Printer{
public void open(){
System.out.println("Canon open");
}
public void print(String s){
System.out.println("Canon print:"+s);
}
public void close(){
System.out.println("Canon close");
}
}
class SonyPrinter implements Printer{
public void open(){
System.out.println("Sony open");
}
public void print(String s){
System.out.println("Sony print:"+s);
}
public void close(){
System.out.println("Sony close");
}
}
建立打印机工厂(如果以后程序需要新增打印机,只需在此添加)
class PrinterFactory{
public static Printer getPrinterFactory(int flag){
Printer printer=null;
if (flag==0){
printer=new HPPrinter();
}
else if(flag==1){
printer=new CanonPrinter();
}
else if(flag ==2){
printer=new SonyPrinter();
}
return printer;
}
}
建立主函数
class Test{
public static void main(String args[]){
int flag=2;
Printer printer=PrinterFactory.getPrinterFactory(flag);
printer.open();
printer.print("Derek up");
printer.close();
}
}