适配器模式(一)

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

1. 类图

 

 2.源代码

//ICat.java
package test8;
public interface ICat {
    public void eat();
    public void catLook();    
}
 //IDog.java
package test8;
public interface IDog {
    
    public void wang();
    public void dogLook();
}
//CatImpl.java
package test8;
public class CatImpl implements ICat{ 
    public void catLook() {
        // TODO Auto-generated method stub
        System.out.println("猫的样子");
    }
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("猫抓老鼠");
    }
}
//DogImpl.java
package test8;
public class DogImpl implements IDog{     
    public void dogLook() {
        // TODO Auto-generated method stub
        System.out.println("狗的样子");
    }
    public void wang() {
        // TODO Auto-generated method stub
        System.out.println("狗汪汪叫");
    } 
}
//Adapter.java
package test8;
public class Adapter implements ICat,IDog{
    private IDog DogImpl = null;
    private ICat CatImpl = null;    
    public Adapter(IDog DogImpl,ICat CatImpl) {
        // TODO Auto-generated constructor stub
        this.DogImpl = DogImpl;
        this.CatImpl = CatImpl;
    }
    @Override
    public void dogLook() {
        // TODO Auto-generated method stub
        System.out.println("狗模仿");
        CatImpl.catLook();
    }
    @Override
    public void wang() {
        // TODO Auto-generated method stub
        System.out.println("狗模仿");
        CatImpl.eat();
    }
    @Override
    public void catLook() {
        // TODO Auto-generated method stub
        System.out.println("猫模仿");
        DogImpl.dogLook();
    }
    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("猫模仿");
        DogImpl.wang();
    }
}
//Client.java
package test8;
public class Client {    
    public static void main(String[] args) {
        Adapter adapter = new Adapter(new DogImpl(),new CatImpl());
        adapter.catLook();
        adapter.eat();
        System.out.println("**************");
        adapter.dogLook();
        adapter.wang();
    }
 
}

 

posted @ 2022-10-14 08:45  今天又双叒叕在敲代码  阅读(41)  评论(0编辑  收藏  举报