根據實際開發經驗設計出來的程式搭建框架,可以較好的解決一些開發中遇到的問題。
常見設計模式有23種。如簡單工廠設計模式、抽象工廠設計模式、單例設計模式等,目前學習前兩種模式。
問題引入:
接到新的開發需求,設計多種報表,如excel報表、word報表或其他報表,我們可以根據每家公司的需求,去讓程式實現該公司所使用的的報表。問題是,如何能最簡單快速的使程式選擇相應的報表形式呢?
簡單工廠概念:
通過「簡單工廠」這樣的形式,來根據實際需求建立我們所選擇的介面的實現類,從而實現乙個選擇功能。
**示例:
先建立介面
namespace建立介面實現類samplefactorydemo
}
namespacesamplefactorydemo}}
namespacesamplefactorydemo}}
<?xml version="建立報表工廠,注意system.configuration引用的新增1.0" encoding="
utf-8
" ?>
usingprogramsystem.configuration;
namespace
samplefactorydemo
return
objreport;}}
}
namespace總結:問題引入:samplefactorydemo}}
以上需求實現,我們發現乙個問題:每次當我們新增新報表型別時,都需要去修改-新增reportfactory,這明顯不符合「開-閉原則」---「開放擴充套件,封閉修改」。
問題解決:
使用反射機制來優化以上程式。反射介紹:
修改reportfactory:
public注意:引入system.reflection;load()裡面是命名空間名稱,createinstance()裡面是完全限定名:命名空間.類名。static
ireport choosereporttype()
設計模式 簡單工廠模式(C )
一.簡單工廠模式又稱靜態工廠方法模式 static factory method 它不是gof 所講的23種設計模式之一,但是它卻是我們在編碼過程中經常使用的方法之一。1.靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪乙個產品的例項,封裝了物件的建立,客戶端只管消費,實現了...
C 設計模式 簡單工廠模式
從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種 gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...
C 設計模式 簡單工廠模式
問題描述 之前在公司做了乙個windows 8平台的閱讀器。首先,需要將電子書中的內容渲染到螢幕上,而電子書每一頁都包含各種各樣的內容,比如 圖形 影象和文字等等 不同的內容,就是不同的物件 在將不同的內容渲染到螢幕上之前,就需要new操作,建立不同的物件,然後再在螢幕上進行描繪。這個時候,就需要進...