美文网首页设计模式
java适配器模式

java适配器模式

作者: 韭菜待收割 | 来源:发表于2018-09-18 10:46 被阅读9次

    1、适配器模式的定义

    适配器就是一种适配中间件,用于连接不匹配的二者,实物可以对照转接头。

    2、适配器模式的分类

    1)类适配器:通过继承来实现适配器功能。

    //懒,就写一起了
    public class MainTest {
        //测试方法
        public static void main(String[] args) {
            Adapter adapter = new Adapter();
            adapter.useRMB();
        }
        //适配器
        public static class Adapter extends YouXiBi implements IRMB{
            @Override
            public void useRMB() {
                //RMB没办法直接买装备,转换成游戏币再购买
                useYouXiBi();
            }
        }
        //RMB接口
        private interface IRMB{
            void useRMB();
        }
        //游戏币接口
        private interface IYouXiBi{
            void useYouXiBi();
        }
        //游戏币使用
        public static class YouXiBi implements IYouXiBi{
            @Override
            public void useYouXiBi() {
                System.out.println("我使用100游戏币买了一件装备");
            }
        }
    }
    

    2)对象适配器:通过组合来实现适配器功能。(可以看作类适配器)

    //懒,就写一起了
    public class MainTest {
        //测试方法
        public static void main(String[] args) {
            IYouXiBi iYouXiBi = new YouXiBi();
            Adapter adapter = new Adapter(iYouXiBi);
            adapter.useRMB();
        }
        //适配器
        public static class Adapter extends YouXiBi implements IRMB{
            IYouXiBi iYouXiBi;
            Adapter(IYouXiBi iYouXiBi){
                this.iYouXiBi = iYouXiBi;
            }
            @Override
            public void useRMB() {
                //RMB没办法直接买装备,转换成游戏币再购买
                iYouXiBi.useYouXiBi();
            }
        }
        //RMB接口
        private interface IRMB{
            void useRMB();
        }
        //游戏币接口
        private interface IYouXiBi{
            void useYouXiBi();
        }
        //游戏币使用
        public static class YouXiBi implements IYouXiBi{
            @Override
            public void useYouXiBi() {
                System.out.println("我使用100游戏币买了一件装备");
            }
        }
    }
    

    3)接口适配器:通过抽象类来实现适配器功能。
    使用场景:想要使用接口中的某些方法,但是不想实现全部的方法,可以使用抽象类来实现接口(这个抽象类就是适配器),仅对方法进行置空,然后我们再继承这个抽象类来通过重写想用的方法的方式来实现。

    //懒,就写一起了
    public class MainTest {
        //测试方法
        public static void main(String[] args) {
            IYouXiBi iYouXiBi = new YouXiBi();
            iYouXiBi.useYouXiBi1();
        }
        //使用YouXiBi
        public static class YouXiBi extends Adapter{
            //游戏币买头盔
            public void useYouXiBi1(){
                System.out.println("游戏币买头盔");
            }
        }
        //游戏币接口
        private interface IYouXiBi{
            //游戏币买头盔
            public  void useYouXiBi1();
            //游戏币买腰带
            public void useYouXiBi2();
            //游戏币买上衣
            public  void useYouXiBi3();
            //游戏币买内裤
            public  void useYouXiBi4();
        }
        //适配器
        public static abstract class Adapter implements IYouXiBi{
            //游戏币买头盔
            public  void useYouXiBi1(){}
            //游戏币买腰带
            public void useYouXiBi2(){}
            //游戏币买上衣
            public  void useYouXiBi3(){}
            //游戏币买内裤
            public  void useYouXiBi4(){}
        }
    }
    

    相关文章

      网友评论

        本文标题:java适配器模式

        本文链接:https://www.haomeiwen.com/subject/lrwynftx.html