物件導向程式設計VS泛型程式設計

2021-05-28 08:29:38 字數 1760 閱讀 1378

物件導向程式設計vs泛型程式設計

1、物件導向** 

oop是對data&&operation的封裝,是對同類事物的抽象,跟結構化程式設計相比它更接近自然語言。繼承使得oo具有了更強的表達能力,進一步地接近了自然語言的屬性。而多型則是oo的最為巧妙和強大的地方,它催生了一系列的設計模式,而設計模式的應用體現了oop的精髓。

2、泛型程式設計

泛型程式設計是對class&&operation的抽象,對class的抽象可以說是對inte***ce的抽象,而operation抽象則是對具有同一inte***ce的class的operation的抽象。

下面是乙個簡單的demo通過上面兩種方式實現對加法和減法的抽象,從而來看看它們的不同。

demo1:通過工廠模式對建立操作類進行了封裝

/**

* author: acb0y

* file name: test.cpp

* create time: 2023年9月20日22:30:40

* version: 1.0

*/#include using namespace std;

class operationinte***ce

virtual int operation() = 0;

};class operationa : public operationinte***ce

};class operationm : public operationinte***ce

};class operationfactory

~operationfactory()

operationinte***ce * createoperation(char type);

};operationinte***ce * operationfactory::createoperation(char type)

switch (type)

return m_poperation;

}int main()

demo2:通過泛型程式設計實現。

/**

* author: acb0y

* file name: test.cpp

* create time: 2023年9月20日23:38:50

* version: 1.0

*/#include using namespace std;

class operationinte***ce

virtual int operation() = 0;

};class operationa : public operationinte***ce

};class operationm : public operationinte***ce

};templateclass operation

void printresult()

};int main()

總結: 

通過上面的比較我們知道這兩種方式都較好的對變化進行了抽象和封裝,不同的是demo1中使用了多型來實現封裝變化,而demo2只是通過用不同的類來例項化模板類來實現對變化的封裝。說白點泛型程式設計實際上就是實現了一坨的類。所以說oo是對是對事物data&&operation的抽象,泛型程式設計是對oo的抽象。

更詳盡的區別:

物件導向程式設計與泛型程式設計

第15章 物件導向程式設計 物件導向程式設計基於資料抽象 繼承 動態繫結三個基本概念。在c 中,用類進行資料抽象,用類派生從乙個類繼承另乙個類 派生類繼承基類的成員。動態繫結使編譯器能夠在執行時決定是使用基類中定義的函式還是派生類中定義的函式。物件導向的三大特徵 封裝 繼承 多型 15.1 物件導向...

c 物件導向程式設計 泛型

泛型類是引用型別,是堆物件。優點 不會強行堆值型別進行裝箱和拆箱,或對引用型別進行向下強制型別轉換,所以效能能得到了提高。list可儲存任意指定型別的集合 優點 與arraylist型別的集合相比,arraylist 在新增string型別時,string型別會隱式強制轉換為object型別。同樣,...

面向過程程式設計VS物件導向程式設計

面向過程程式設計vs物件導向程式設計 a.面向過程程式設計的特點 a c語言的特點 優點 簡潔緊湊,靈活方便 結構化語言 語法限制不太嚴格,程式設計自由度大 允許直接訪問實體地址 可以直接對硬體操作 生成目標 質量高,程式 執行效率高 具有較 高的可移植性 缺點 靈活性 維護性 復用性 擴充套件性差...