婚戀app原始碼設計模式六大原則有哪些?
一,開閉原則
什麼是開閉原則
開閉原則的作用
開閉原則的優點
#include <iostream>class Number {protected: double pi = 3.1415926;public: virtual double getCircularArea(int d) = 0; virtual double getRectangularArea(int a, int b) = 0;};class NumberArea : public Number {public: double getCircularArea(int r) { return ((double)r * r) * this->pi; } double getRectangularArea(int a, int b) { return (double)a * b; }};int main(){ NumberArea num; double cricular = num.getCircularArea(1); std::cout << cricular << std::endl; }
二,單一職責原則
單一職責定義
單一職責的作用
單一職責的優點
#pragma once#include<string>using namespace std;class ProductFactory {public: virtual string product(string material) = 0;};class ConsumeFactory {public: virtual void consume(string product) = 0;};
#include<iostream>#include"./factroy.h"using namespace std;class ProductFactoryimpl :ProductFactory{public: string product(string material) { return material ; }};class ConsumeFactoryimpl : ConsumeFactory {public : void consume(string product) { cout << "消費了" << product << endl; }};int main() { ProductFactoryimpl p; string data = p.product("goods"); ConsumeFactoryimpl c; c.consume(data); return 0;}
單一職責的違背原則
#pragma once#include<string>using namespace std;class ConsumeFactory {public: virtual string product(string material) = 0; virtual void consume(string product) = 0;};class ConsumeFactory :ProductFactory{public: string product(string material) { return material ; } void consume(string product) { cout << "消費了" << product << endl; }};int main() { ConsumeFactoryimpl c; string data = c.product("goods"); c.consume(data); return 0;}
三,依賴倒置原則
依賴倒置的定義
依賴倒置原則的作用
四,里氏替換原則
里氏替換原則的定義
里氏替換原則的強制性
里氏替換原則的優缺點
里氏替換原則的違背原則
class Math {public: virtual int sum(int a, int b) = 0; virtual float halve(int a) = 0;};
#include"Factroy.h"#include<iostream>using namespace std;class math :Math {public: int sum(int a, int b) { return a + b; } float halve(int num) { return num >> 1; }};class math2 :math {private: int add = 100;public: int sum(int a, int b) { return a + b + add; } float halve(int num) { return num >> 1; }};int main() { math m; int sum = m.sum(2, 2); float halve = m.halve(sum); cout << "sum(2,2)" << sum << endl; cout << "halve(4)" << halve << endl; math2 m2; int sum2 = m2.sum(2, 2); float halve2 = m2.halve(sum2); cout << "sum(2,2)" << sum2 << endl; cout << "halve(4)" << halve2 << endl; return 0; }
五,介面隔離原則
介面隔離原則的定義
介面隔離原則的優點:
程式碼實現
#pragma once#include<string>#include<vector>using std::string;using std::vector;/*封裝了vector*/template<class T> class Container :public vector<T> {};template<class T> class Crud {public: virtual void insert(T t) = 0; virtual T get( int index) = 0; virtual void delete_(int index) = 0; virtual int size() = 0;};//應用template<class T, class V> class Apply {public: virtual V apply(Crud<T>* c) = 0;};
#include <iostream>#include"Interface.h"using std::cout;using std::endl;class Applylmp : public Apply<string,string>, public Crud<string>, public Container<string> {private: Container<string> list;public: void insert(string s) { list.insert(list.end(),s); cout << "插入了" << s << endl; } string get(int index) { return list.operator[](index); } void delete_(int index) { list.operator[](index) = ""; } int size() { return list.size(); } string apply() { string s; for (int i = 0; i < this->size(); i++) { s.append(this->get(i)); } return s; }};int main(){ Applylmp apply; string s[] = { "a","b","c" }; for (int i = 0; i < (sizeof(s)/ sizeof(string)); i++) { apply.insert(s[i]); } string data = apply.apply(); cout << data; return 0; }
六,迪米特原則(最小知識原則)
迪米特原則的定義
迪米特原則的優點
程式碼實現
#include <iostream>class Stranger {public: void call() { std::cout << "我是陌生人" << std::endl; }};class Friend {private: Stranger* stranger;public: void forward() { std::cout << "我給你介紹一下" << std::endl; stranger->call(); } void call() { std::cout << "我是朋友" << std::endl; }};class Someone {
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996194/viewspace-2837624/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 設計模式——六大原則設計模式
- 設計模式六大原則設計模式
- 設計模式-六大原則設計模式
- 設計模式六大原則(六)----開閉原則設計模式
- 設計模式的六大原則設計模式
- 設計模式之六大原則設計模式
- Python設計模式六大原則!Python設計模式
- 婚戀app原始碼開發中,可以使用的前端除錯技巧有哪些?APP原始碼前端除錯
- 設計模式六大原則詳解設計模式
- 設計模式“6”大原則!設計模式
- 設計模式六大原則(五)----迪米特法則設計模式
- 設計模式六大原則(四)----介面隔離原則設計模式
- 設計模式的分類和六大原則設計模式
- 聊一聊設計模式(一)-- 六大原則設計模式
- 設計模式六大原則(二)----裡式替換原則設計模式
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計模式 -- 設計模式七大原則設計模式
- 設計類六大原則
- 如何實現婚戀app原始碼中元素水平垂直居中?APP原始碼
- 設計模式七大原則設計模式
- 設計模式之7大原則設計模式
- 如何實現婚戀app原始碼移動端網頁特效?APP原始碼網頁特效
- 婚戀app原始碼開發,如何實現介面效能優化?APP原始碼優化
- 設計模式:物件導向設計的六大原則 (絕對詳細)設計模式物件
- Python設計模式的六大原則分別是什麼?Python設計模式
- 【設計模式筆記】(零)- 物件導向的六大原則設計模式筆記物件
- 設計模式的七大原則設計模式
- 好程式設計師Java培訓分享Java設計模式的六大原則程式設計師Java設計模式
- OA系統設計的六大原則
- 如何實現婚戀app原始碼中直播首屏載入優化?APP原始碼優化
- 婚戀app原始碼開發,值得一看的前端加密方法APP原始碼前端加密
- Java的設計模式和6大原則Java設計模式
- 在婚戀app原始碼開發中,如何實現滑動驗證碼元件?APP原始碼元件
- 設計模式-六大設計原則設計模式
- 設計模式六大設計原則設計模式
- 設計模式的七大原則詳解設計模式
- 設計模式的七大原則(5) --開閉原則設計模式
- 六大原則