亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++設計模式迪米特法則的示例分析

發布時間:2021-08-23 13:59:18 來源:億速云 閱讀:132 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關C++設計模式迪米特法則的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

迪米特法則(Law of Demeter)又叫作最少知識原則(Least Knowledge Principle 簡寫LKP),就是說一個對象應當對其他對象有盡可能少的了解,不和陌生人說話。英文簡寫為: LoD.

類的設計接口盡量封裝完善,讓外部直接調用

#include<iostream>
#include<string>
#include<vector>
using namespace std;
 
class AbstractBuilding
{
public:
 virtual void sale() = 0;
 virtual string getQuality() = 0;
 
};
 
class BuildingA :public AbstractBuilding
{
public:
 
 BuildingA()
 {
 mQulity = "高品質";
 }
 
 virtual void sale()
 {
 cout << "樓盤A" << mQulity << "被售賣!" << endl;
 }
 
 virtual string getQuality()
 {
 return mQulity;
 }
 
public:
 string mQulity;
};
 
 
class BuildingB :public AbstractBuilding
{
public:
 
 BuildingB()
 {
 mQulity = "低品質";
 }
 
 virtual void sale()
 {
 cout << "樓盤B" << mQulity << "被售賣!" << endl;
 }
 
 virtual string getQuality()
 {
 return mQulity;
 }
 
public:
 string mQulity;
};
 
// 中介類
class Mediator
{
public:
 Mediator()
 {
 AbstractBuilding* building = new BuildingA;
 vBuilding.push_back(building);
 building = new BuildingB;
 vBuilding.push_back(building);
 }
 
 // 對外提供接口
 AbstractBuilding* findMyBuilding(string quality)
 {
 for (vector<AbstractBuilding*>::iterator it = vBuilding.begin();
  it != vBuilding.end(); it++)
 {
  if ((*it)->getQuality() == quality)
  {
  return *it;
  }
 }
 
 return NULL;
 }
 
 ~Mediator()
 {
 for (vector<AbstractBuilding*>::iterator it = vBuilding.begin();
  it != vBuilding.end(); it++)
 {
  if (*it != NULL)
  delete *it;
 }
 }
public:
 vector<AbstractBuilding*> vBuilding;
};
 
 
void test01()
{
 Mediator* mediator = new Mediator;
 
 AbstractBuilding* building = mediator->findMyBuilding("低品質");
 
 if (building != NULL)
 {
 building->sale();
 
 }
 else
 {
 cout << "沒有符號條件的樓盤" << endl;
 }
 
}
 
int main()
{
 test01();
 system("pause");
}

關于“C++設計模式迪米特法則的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

都安| 互助| 桐城市| 南皮县| 浦城县| 诸城市| 东莞市| 筠连县| 峡江县| 临泉县| 汽车| 苍溪县| 鄱阳县| 镇康县| 合川市| 宜兴市| 安塞县| 拜泉县| 万盛区| 新营市| 晋城| 莱州市| 康定县| 涿州市| 沂源县| 铜鼓县| 大冶市| 保山市| 贵南县| 格尔木市| 宁城县| 河间市| 沧州市| 墨玉县| 井研县| 毕节市| 江陵县| 房产| 西畴县| 福州市| 新乐市|