文章插圖

文章插圖
【C語言代碼示例 c++代碼示例】策略模式就是準備一組算法,并將每一個算法封裝起來,使得他們可以互換(這兒的關鍵就是算法的邏輯抽象,接口封裝到一個類中,再通過委托的方式將具體的算法實現委托給具體的類來實現)
對稱加密速度快加密大數據塊文件特點,加密密鑰和解密密鑰是一樣的
非對稱加密,加密速度慢、加密強度高高,安全性特點,加密密鑰和解密密鑰不一樣
#include<iostream>using namespace std;class Strategy{public:virtual void crypy() = 0;};class AES :public Strategy{public:virtual void crypy(){cout << "AES加密算法 " << endl;}};class DES :public Strategy{public:virtual void crypy(){cout << " DES加密算法" << endl;}};class Context{public:void setStrategy(Strategy *strategy){this->strategy = strategy;}void myoperator(){strategy->crypy();}private:Strategy *strategy;};void main(){//DES*des = new DES;des->crypy();delete des;Strategy*strategy = NULL;strategy= new DES;Context *context = new Context;context->setStrategy(strategy);context->myoperator();delete strategy;delete context;system("pause");return;}中介者模式就是定義一個中介對象,未封裝系列對象之間的交互,終結者是各個對象不需要顯示的相互調用,從而使其耦合性松散,而且可以獨立的改變他們之間的交互中介者問題拋出
#include<iostream>using namespace std;#include"string"class Person{public:Person(string name, int sex, int condi){m_name=name;m_sex=sex;m_condi = condi;}stringgetName(){return m_name;}intgetSex(){return m_sex;}intgetCondi(){return m_condi;}protected:stringm_name;intm_sex;intm_condi;};class Women :public Person{public:Women(string name, int sex, int condi) :Person(name, sex, condi){}virtualvoidgetParter(Person*p){if (this->m_sex == p->getSex()){cout << "我不是同性戀..(這里就是問題研究,不帶任何感情色彩)" << endl;}if (this->getCondi() == p->getCondi()){cout << this->getName() << "和" << p->getName() << "絕配" << endl;}else{cout << this->getName() << "和" << p->getName() << "bu配" << endl;}}};class Man :public Person{public:Man(string name, int sex, int condi) :Person(name, sex, condi){}virtualvoidgetParter(Person*p){if (this->m_sex == p->getSex()){cout << "我不是同性戀..(這里就是問題研究,不帶任何感情色彩)" << endl;}if (this->getCondi() == p->getCondi()){cout << this->getName() << "和" << p->getName() << "絕配" << endl;}else{cout << this->getName() << "和" << p->getName() << "bu配" << endl;}}};void main(){Person *xiaofang = new Women("小芳", 2, 5);Person *zhangsan = new Man("張三", 1, 4);Person *lisi = new Man("李四", 2, 5);xiaofang->getParter(zhangsan);xiaofang->getParter(lisi);system("pause");return;}中介者代碼實現#include<iostream>using namespace std;#include"string"class Person{public:Person(string name, int sex, int condi, Mediator*m){m_name = name;m_sex = sex;m_condi = condi;mediator = m;}stringgetName(){return m_name;}intgetSex(){return m_sex;}intgetCondi(){return m_condi;}protected:stringm_name;intm_sex;intm_condi;Mediatormediator;};class Mediator//中介這的抽象父類{public:virtual void getParter() = 0;void setMan(Person*pMan){pMan = man;}void setWomen(Person*pMan){pWomen = women;}public:virtual void getParter(){if (pWomen->getSex() == pMan->getSex()){cout << "我不是同性戀..(這里就是問題研究,不帶任何感情色彩)" << endl;}if (pWomen->getCondi() == pMan->getCondi()){cout << pWomen->getName() << "和" << pMan->getName() << "絕配" << endl;}else{cout << pWomen->getName() << "和" << pMan->getName() << "bu配" << endl;}}private:Person*pWomen;Person*pMan;};class Women :public Person{public:Women(string name, int sex, int condi, Mediator*m) :Person(name, sex, condi,m){}public:virtualvoidgetParter(Person*p){mediator->setMan(p);mediator->setWomen(this);mediator->getParter();}};class Man :public Person{public:Man(string name, int sex, int condi, Mediator*m) :Person(name, sex, condi,m){}public:virtualvoidgetParter(Person*p){mediator->setMan(this);mediator->setWomen(p);mediator->getParter();}};void main(){Mediator *m = new Mediator;Person *xiaofang = new Women("小芳", 2, 5,m);Person *zhangsan = new Man("張三", 1, 4,m);Person *lisi = new Man("李四", 2, 5,m);xiaofang->getParter(zhangsan);xiaofang->getParter(lisi);system("pause");return;}
- 撩啥意思,這個意思唄
- 遺傳算法經典實例matlab代碼 遺傳算法matlab程序案例詳解
- mybatisplus 代碼生成 mybatisplus自動生成
- c盤清理垃圾代碼 電腦c盤清理垃圾
- 簡單的表白代碼vbs
- python正則表達式應用舉例 正則表達式測試工具代碼
- 決策樹分類算法代碼 決策樹CSDN
- 撩男神語言套路句子,女生也要會說情話
- c語言sizeof用法 of用法小結
- 撩小哥哥語言情話甜,超甜的語言小哥哥好喜歡
