生活随笔
收集整理的這篇文章主要介紹了
                                
[设计模式]合成复用原则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
 
                                
                            
                            
                            合成復用原則:繼承和組合,優先使用組合。
 
這樣寫,每開一種車,就要弄一個新的Person類。
 代碼如下:
 
#include <iostream>
using namespace std
;class AbstractCar
{
public:virtual void run() = 0;
};class DaZhong :public AbstractCar
{
public:virtual void run(){cout 
<< "大眾車啟動" << endl
;}
};class TuoLaJi :public AbstractCar
{
public:virtual void run(){cout 
<< "拖拉機啟動" << endl
;}
};class PersonA:public TuoLaJi
{
public:void Doufen(){run();}
};class PersonB :public DaZhong
{
public:void Doufen(){run();}
}; 
合成復用原則
 代碼如下:
 
#include <iostream>
using namespace std
;class AbstractCar
{
public:virtual void run() = 0;
};class DaZhong :public AbstractCar
{
public:virtual void run(){cout 
<< "大眾車啟動" << endl
;}
};class TuoLaJi :public AbstractCar
{
public:virtual void run(){cout 
<< "拖拉機啟動" << endl
;}
};class Person
{
public:void setCar(AbstractCar 
*car
){this->car 
= car
;}void Doufeng(){this->car
->run();if (this->car 
!= nullptr){delete this->car
;}this->car 
= nullptr;}AbstractCar 
*car
;
};void test01()
{Person 
*p 
= new Person
;p
->setCar(new DaZhong
);p
->Doufeng();p
->setCar(new TuoLaJi
);p
->Doufeng();
}int main()
{test01();return 0;
} 
測試結果:
 
                            總結
                            
                                以上是生活随笔為你收集整理的[设计模式]合成复用原则的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                            
                                如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。