io流(适配器模式)


适配器模式

  • 例如:用户的需求与解决的代码不匹配,这就需要适配器

    • 类适配器
    package com.bjsxt.test11;
    //被适配的类
    public class Adaptee {
        public void surf(){
            System.out.println("提供上网功能!");
        }
    }
    //客户的目的就是为了上网
    interface Target{
        void toSurf();
    }
    class Client{
        public void want(Target t){
            t.toSurf();
        }
    }
    //进行适配工作
    class Adapter extends Adaptee implements Target{
        @Override
        public void toSurf() {
            System.out.println("转换。。。");
            super.surf();
        }
    }
    class Test{
        public static void main(String[] args) {
            new Client().want(new Adapter());
        }
    }
    
    • 对象适配器(仅改变适配器的类即可)
    package com.bjsxt.test11;
    //被适配的类
    public class Adaptee {
        public void surf(){
            System.out.println("提供上网功能!");
        }
    }
    //客户的目的就是为了上网
    interface Target{
        void toSurf();
    }
    class Client{
        public void want(Target t){
            t.toSurf();
        }
    }
    //进行适配工作
    //对象适配器就更改适配器,不改其他的
    class Adapter implements Target{
        Adaptee ae;
        public Adapter(Adaptee ae){
            this.ae=ae;
        }
        @Override
        public void toSurf() {
            System.out.println("转换。。。");
            ae.surf();
        }
    }
    class Test{
        public static void main(String[] args) {
            new Client().want(new Adapter(new Adaptee()));
        }
    }
    
  • 适配器模式的优缺点:

    优点:

    ? 更好的复用性

    ? 更好的扩展性:调用自己开发的功能,从而扩展系统的功能

    缺点:

    ? 过多的适配器会让系统特别的凌乱,如果不是很必要,可以不适用适配器,而是直接对系统进行重构