原创 原型模式 - Prototype

定義: 用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。 舉例:學校要製造學生檔案,同一個班的同學,大部分信息是相同的,可以先製作一份,填好相同信息,然後以其爲原型,複製多份,再填寫同學們不同的信息;這要比一份一份

原创 建造者模式 - Builder

定義:將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 舉例:學校需要製造桌子,桌子高低大小不等;只需將不同規格的桌子告知建造者即可。適用於流程相同,規格不同的場景。 類圖 客戶端 #include "

原创 工廠方法 - FactoryMethod

定義:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。 舉例:學校使用得力品牌的筆。後期學校需要晨光牌的筆,只需換爲晨光工廠即可。 類圖 客戶端 #include <iostream> #include "Chengua

原创 抽象工廠模式 - Abstract Factory

定義:提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。 舉例: 學校裏需要製造一年級的語文書、數學書,二年級的語文書、數學書。 類圖 客戶端 #include "FactoryGrade1.h" #inclu

原创 設計模式簡介

摘自“菜鳥教程” 設計模式(Design pattern)代表了最佳的實踐,通常被有經驗的面向對象的軟件開發人員所採用。設計模式是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。這些解決方案是衆多軟件開發人員經過相當長的一段

原创 開放封閉原則-Open Closeed Principle-OCP

定義: 對軟件實體(類、模塊、函數),擴展可以開放,修改應該封閉。 優點: 可維護 可擴展 可複用 靈活性高 舉例: 學校裏有一名老師教語文 // Teacher.h class Teacher { public: void

原创 迪米特原則 - Least Knowledge Principle - LKP

定義: 一個類應該對其他類保持最少的瞭解。 釋義: 只有直接的朋友通信。 直接的朋友:出現在成員變量,方法參數,方法返回值中的類。出現在局部變量中的類則不是直接朋友。 舉例:如校長想知道學校全體同學的名字,只需與各班主任溝通就行,無需

原创 接口隔離原則 - Interface Segregation Principle - ISP

定義: 客戶端不應該依賴它不需要的接口;一個類對另一個類的依賴應該建立在最小的接口上。 釋義:類依賴的接口,其含有的方法都是自己依賴的。 使用時,注意以下幾點: 接口儘量小,但是要有限度。對接口進行細化可以提高程序設計靈活性是不掙的

原创 依賴倒置原則 - Dependence Inversion Principle - DIP

定義: 高層模塊不應該以來低層模塊,兩個都應該依賴抽象 抽象不應該依賴細節,細節應該依賴抽象 核心思想:針對接口編程,不要對實現編程 使用時,應遵循以下3點 低層模塊或高層模塊儘量都要有抽象類,或者兩者都有 變量的聲明類型儘量是

原创 里氏替換原則 - Liskov Substitution Principle - LSP

定義:子類可以擴展父類的功能,但不能改變父類原有的功能。 通俗的講:軟件中使用一個父類,那麼一定適用其子類,而且它察覺不出父類和子類的區別。即,把父類替換成它的子類,軟件行爲沒有變化。其中有四層含義: 子類可以實現父類的抽象方法,但

原创 單例模式(Singleton)

解釋:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 舉例: 一個班裏只能有一個班主任,無論何時找班主任,都指向同一個人。 班主任類 HeadTeacher.h #pragma once // 班主任類 class HeadT

原创 Qt5.9.7 移植到Hi3536,支持OpenGL和tsLib

Qt 5.9爲LTS版本 軟件下載 http://download.qt.io/archive/qt/5.9/5.9.7/single/ 說明:zip爲windows版; tar.xz爲linux版 解壓軟件 xz qt

原创 單一職責原則-Single Responsibility Principle-SRP

定義:就一個類而言,應該僅有一個引起其變化的原因。 問題:類T負責兩個不同的職責P1, P2。

原创 面向對象設計原則及設計模式

面向對象設計原則 簡介 單一職責原則 裏式替換原則 依賴倒置原則 接口隔離原則 迪米特原則 開放關閉原則 設計模式 簡介 創建型模式 抽象工廠模式 建造者模式 工廠方法模式 原型模式 單例模式 結構型模式 適配器模式 橋

原创 Entity Framework Code First

1. 數據庫連接      http://www.cnblogs.com/libingql/p/3351275.html 2. 屬性映射約定   http://www.cnblogs.com/libingql/p/3352058.html