zoukankan      html  css  js  c++  java
  • 设计模式:Adapter模式

    目的:复用代码和兼容以前的代码

    思想:提供一个中间层,做兼容

    方法:“继承”的方式,“委托”的方式

    继承关系图:

    • 委托方式

    • 继承方式


    例子:

    //原来的打印
    class Print   
    {
    public:
    	void PrintText(string str)
    	{
    		cout<< str ; 
    	}
    };
    
    //新要求,打印加括号
    class NewPrint      
    {
    public:
    	virtual void PrintText(string str) = 0;
    };
    
    //适配层:委托方式
    class Adapter: public NewPrint  
    {
    	Print print;   //委托方式
    public:
    	Adapter(Print print)
    	{
    		this->print = print;
    	}
    	
    	void PrintText(string str)
    	{
    		cout<< "( ";
    		print.PrintText(str);
    		cout<< " )" << endl;;
    	}
    };
    int main() 
    {
    	Print p;
    	NewPrint* np = new Adapter(p);
    	np->PrintText("niu bi le!");
    	return 0;
    }
    //适配层:继承的方式
    class Adapter: public Print, public NewPrint  //继承方式
    {
    public:
    	void NewPrintText(string str)
    	{
    		cout<< "( ";
    		PrintText(str);
    		cout<< " )" << endl;;
    	}
    };
    
    int main() 
    {
    	NewPrint* np = new Adapter;
    	np->NewPrintText("niu bi le!");
    	return 0;
    }
  • 相关阅读:
    函数递归,匿名函数
    生成器
    迭代器
    有参函数(认证功能)
    闭包函数和装饰器
    文件处理
    Celery介绍
    Redis 介绍
    GIT知识点
    前后端分离-前端配置
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11431656.html
Copyright © 2011-2022 走看看