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