c 重學筆記17 policies設計

2021-10-03 22:40:07 字數 1409 閱讀 3966

喜歡這篇文章嗎?喜歡的話去看博主的置頂部落格,即可依據分類找到此文章的原版得到更好的體驗,

title: c++重學筆記17 - policies設計

mathjax: true

date: 2020-03-14 21:39:09

categories: [c++重學筆記]

tags: [c++重學筆記]

keywords: [c++重學筆記]

這個設計目前對我而言,還有點深,先留個坑

假設某個物件有大量的功能需求,這時候大多數人選擇的設計方案是:設計乙個全功能型介面。這樣做會導致介面過於龐大已經難以維護。

正確的做法是將功能正交分解,用多個類來維護這些介面,達到功能類高內聚,功能類間低耦合,然後使用多重繼承來實現,並允許使用者自己配置,這樣的做法有乙個很困難的地方,就是基類沒有足夠的資訊知道派生類的型別。於是我們通過模版套娃,讓派生類作為基類的模版引數。

&esp; **如下,筆者太菜,不敢自己寫,不敢修改。

#include

#include

using std::cin;

using std::cout;

using std::endl;

using std::tr1::shared_ptr;

template

<

class

t>

class

creatornew

~creatornew()

shared_ptr

createobj()

};template

<

class

t>

class

creatorstatic

~creatorstatic()

t&createobj()

};template

<

template

<

class

>

class

creationpolicy

>

class

widgetmanager

:public creationpolicy

>

~widgetmanager()

};intmain

(int argc,

char

** ar**)

先說結論,不要使用public繼承,上訴**是錯誤的,第二policies類不要使用虛析構函式,並且為虛構函式設為protect。

當我們在設計乙個智慧型指標的時候,我們能夠想到有兩個方向:是否支援多執行緒,是否進行指標檢查,這兩個功能是正交的,這就實現了policy的組裝

當我們設計智慧型指標的時候,我們不一定必須是傳統指標,我們可以抽象指標為迭代器,預設設定為乙個既包含指標又包含引用的類。

C 筆記17 事務

c 筆記17 事務 本章概要 1 事務概述 2 隱式事務 3 顯示事務 1 事務概述 當您從網上書店購買書籍時,會用錢 以信貸方式 來交換書籍。如果您的信用良好,則一系列相關操作可確保您和書店可以相應地獲得書籍和錢。但如果在交換期間該系列操作中的單個操作發生故障,則整個交換就會失敗。結果,您就得不到...

c 學習筆記(17)

類模板中的成員函式建立時機 類模板中成員函式和普通類中成員函式建立時機是有區別的 普通類中的成員函式一開始就可以建立 類模板中的成員函式在呼叫時才建立 template class t class myclass void func2 因為在呼叫之前,無法確定obj的資料型別,所以成員函式不會被建立...

C 學習筆記17 繼承

繼承 物件導向中的繼承指類之間的父子關係 子類擁有父類的所有成員變數和成員函式 子類就是一種特殊的父類 子類物件可以當作父類物件使用 子類可以擁有父類沒有的方法和屬性 繼承時候的訪問級別設定會影響到成員的訪問級別 class child parent 等價於class child private p...