接口的应用

接口的应用:
主要内容:
1.为什么要使用接口?

2.工厂方法模式。

interface Printer{
    public void open();
    
    public void close();
    
    public void  print(String s);
    
}   
class HpPrinter implements Printer{
    public void open(){
        System.out.println("HP open");
    }
    
    public void close(){
        System.out.println("HP close");
    }
    public void print(String s){
        System.out.println("HP print --->" + s);
    }
}
class CannoPrinter implements Printer{
    public void close(){
        this.clean();
        System.out.println("Canon close");
    }
    
    private void clean(){
        System.out.println("clean");
    }

    public void open(){
         System.out.println("Canno open");
    }

    public void print(String s){
                System.out.println("Canno print --->" + s);
    }           
    
}               
class Test{
    public static void main(String args[]){
        Printer printer = null;
        int flag = 1;
        if(flag == 0){
            printer = new HpPrinter();
        }else if(flag == 1){
            printer = new CannoPrinter();
        }   //这种方法会在这里出现问题,如果有100台以上的打印机就会很多
        printer.open();
        printer.print("test");
        printer.close();
    }   
} 
可以直接创建一个类来解决这个问题:

interface Printer{
    public void open();
    
    public void close();
    
    public void  print(String s);
    
}   
class HpPrinter implements Printer{
    public void open(){
        System.out.println("HP open");
    }
    
    public void close(){
        System.out.println("HP close");
    }
    public void print(String s){
        System.out.println("HP print --->" + s);
    }
}
class CannoPrinter implements Printer{
    public void close(){
        this.clean();
        System.out.println("Canon close");
    }
    
    private void clean(){
        System.out.println("clean");
    }

    public void open(){
         System.out.println("Canno open");
    }

    public void print(String s){
                System.out.println("Canno print --->" + s);
    }           
    
}               
class PrinterFactory{//创建这个类来解决问题
    public static Printer getPrinter(int flag){
        Printer printer = null;
        if(flag == 0){
            printer = new HpPrinter();
        }else if (flag == 1){       
            printer = new CannoPrinter();
        }   
        
        return printer;
    }
}
class Test{
    public static void main(String args[]){
        Printer printer = null;
        int flag = 1;
        printer = PrinterFactory.getPrinter(flag);
        printer.open();
        printer.print("test");
        printer.close();
    }
} 
这样就会很容易的添加或删除一个打印机设备了。只需要修改Test类中的flag,并添加一个打印机类即可




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值