• 设计模式之Adapter模式


    作用:使不同的类之间进行协调配合(220V的电压经过适配器给12V的电脑供电)

    Adapt模式有以下两种:

    1.类适配器模式(使用继承的适配器)

    UML类图:

    Banner类:

    public class Banner  //220伏电压 
    {
        private String string;
    
        public Banner(String string)
        {
            this.string = string;
        }
    
        public void showWithParen() //将输出的字符串加上括号 
        {
            System.out.println("(" + string + ")");
        }
        
        public void showWithAster() //将输出的字符串加上*号 
        {
            System.out.println("*" + string + "*");
        }
    }

    print接口:

    public interface Print //12伏特的笔记本电脑
    {
        public abstract void printWeak(); //虚弱的输出字符串
        public abstract void printStrong();//强调性的输出字符串
    } 

    PrintBanner类:

    //适配器类
    public class PrintBanner extends Banner implements Print
    {
        public PrintBanner(String string)
        {
            super(string);
        }
        public void printWeak()
        {
            showWithParen();   //调用Banner方法 
        }
        public void printStrong()
        {
            showWithAster(); //调用Banner方法 
        }
    }

    主函数:

    public class Main()
    {
        public static void main(String[] args)
        {
            Print p = new PrintBanner("hello");
            p.printWeak();
            p.printStrong();
        }
    }

    2.对象适配器模式(使用委托的适配器)

    UML类图:

    print类:

    public abstract class Print
    {
        public abstract void printWeak();
        public abstract void printStrong();
    }

    PrintBanner类:

    public class PrintBanner extends Print
    {
        private Banner banner;
        
        public PrintBanner(String string)
        {
            this.banner = new Banner(string);
        }
        public void printWeak()
        {
            banner.showWithParen();
        }
        public void printStrong()
        {
            banner.showWithAster();
        }
    }

    两者区别:第一种是通过单继承和实现接口的方法进行适配,第二种是单继承和包含尽心适配

    使用场景:现有的类Bug很少,我们可以将其当作组件来使用,添加适配器让类之间进行合理的调用

  • 相关阅读:
    沙雕玩意儿
    1558:聚会 ybt
    沙雕关于线段树的一点总结(滑稽)
    卑微
    沙雕题目 来自luogu
    甜茶好帅啊
    python 中字符串的格式化
    python的几个小程序
    python 第一课
    基于笔画宽度变换的自然场景文本检测方法
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/10778183.html
Copyright © 2020-2023  润新知