zoukankan      html  css  js  c++  java
  • 设计模式之适配器模式

    定义:( Adapter)

    将一个类的接口转换为客户希望的另一个接口. Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作

    例子:

    适配器模式比较容易理解, 现实生活中也有许多适配器的模型, 比如之前耳机插口有粗有细,然后就出现了一种 粗细口转化的工具

    这种工具我们就可以看作为适配器. 适配器模式主要适用于希望复用一些现存的功能接口,但是接口的形式与要求不一致的情况.

    适配器模式结构图:

     

     代码示例:

    class Earphone 
    {
    	public:
    		virtual void listen();
    };
    
    class EarphoneAdapter: EarPhone
    {
    	SmallEarPhone * smEar;
    	public:
    	void listen()
    	{
    		return smEar->listenMusic();
    	}
    };
    
    class SmallEarPhone
    {
    	public:
    		void listenMusic()
    		{
    			cout <<"bbulabulabua" << endl;
    		}
    };
    
    class Client
    {
    	public:
    		void playMusic()
    		{
    			earphone = new EarPhoneAdapter();
    			earphone.listen();
    			delete earphone;
    		}
    	private:
    		EarPhone * earphone;
    }

     客户端听歌, 但是第三方库已经实现了听歌的功能, 却是用细孔耳机听歌的, 我们现在只有粗孔耳机,因此,需要适配器将粗孔耳机转化为细孔的,然后使用第三方的听歌功能.

    适配器模式适用的场景:

    当双方都不方便修改自己的接口时,考虑使用适配器模式. 常见的是我们在调用第三方库时, 当需要的接口形式与我们提供的不一致时, 考虑使用适配器将其转换.

    ~~~~~
  • 相关阅读:
    postgresql修改postgres用户密码
    centos7 安装netstat命令工具
    sqlplus、lsnrctl命令工具不可用(libclntsh.so.11.1)
    oracle修改数据文件目录
    oracle数据库主主复制
    Spring--quartzJob配置
    TimerTask--spring配置
    SSM+Apache shiro--ehcache缓存清理
    SSM+Apache shiro--自定义realm
    ssm+Apache shiro--配置文件
  • 原文地址:https://www.cnblogs.com/missmzt/p/5646397.html
Copyright © 2011-2022 走看看