看《你必须知道的.NET》有感--工厂模式的另类解读
生活随笔
收集整理的這篇文章主要介紹了
看《你必须知道的.NET》有感--工厂模式的另类解读
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在看博客園里的推薦的《你必須知道的.NET》,對里面有一段關于銀行的客戶和職員的安排的程序有點興趣。這里我把他改了下,促進理解:
?
Code??1using?System;
??2using?System.Collections.Generic;
??3using?System.Text;
??4
??5namespace?ConsoleApplication1
??6{
??7????class?Program
??8????{
??9????????static?void?Main(string[]?args)
?10????????{
?11????????????bankManage?bank?=?new?bankManage();
?12????????????bank.operate(new?savingRequestion());
?13????????????bank.operate(new?outingRequest());
?14????????????bank.operate(new?turningRequest());
?15????????????Console.ReadKey();
?16????????}
?17????}
?18????/**////?<summary>
?19????///?銀行業務接口
?20????///?</summary>
?21????public?interface?operation
?22????{
?23????????void?operate();
?24????}
?25????/**////?<summary>
?26????///?存錢業務
?27????///?</summary>
?28????public?class?savingBox?:?operation
?29????{
?30????????operation?Members#region?operation?Members
?31
?32????????public?void?operate()
?33????????{
?34????????????Console.Write("You?are?saving!\n");
?35????????}
?36
?37????????#endregion
?38????}
?39????/**////?<summary>
?40????///?取錢業務
?41????///?</summary>
?42????public?class?outingBox?:?operation
?43????{
?44????????operation?Members#region?operation?Members
?45
?46????????public?void?operate()
?47????????{
?48????????????Console.Write("You?are?outing!\n");
?49????????}
?50
?51????????#endregion
?52????}
?53????/**////?<summary>
?54????///?需求
?55????///?</summary>
?56????public?interface?requestion
?57????{
?58????????operation?request();
?59????}
?60????/**////?<summary>
?61????///?存錢需求
?62????///?</summary>
?63????public?class?savingRequestion?:?requestion
?64????{
?65????????requestion?Members#region?requestion?Members
?66
?67????????public?operation?request()
?68????????{
?69????????????return?new?savingBox();
?70????????}
?71
?72????????#endregion
?73????}
?74????/**////?<summary>
?75????///?取錢需求
?76????///?</summary>
?77????public?class?outingRequest?:?requestion
?78????{
?79????????requestion?Members#region?requestion?Members
?80
?81????????public?operation?request()
?82????????{
?83????????????return?new?outingBox();
?84????????}
?85
?86????????#endregion
?87????}
?88????/**////?<summary>
?89????///?銀行管理
?90????///?</summary>
?91????public?class?bankManage
?92????{
?93
?94????????public?void?operate(requestion?man)
?95????????{
?96????????????operation?oper?=?man.request();
?97????????????oper.operate();
?98????????}
?99????}
100????/**////?<summary>
101????///?轉賬業務
102????///?</summary>
103????public?class?turningBox?:?operation
104????{
105????????operation?Members#region?operation?Members
106
107????????public?void?operate()
108????????{
109????????????Console.Write("you?are?turning!\n");
110????????}
111
112????????#endregion
113????}
114????/**////?<summary>
115????///?轉賬需求
116????///?</summary>
117????public?class?turningRequest?:?requestion
118????{
119????????requestion?Members#region?requestion?Members
120
121????????public?operation?request()
122????????{
123????????????return?new?turningBox();
124????????}
125
126????????#endregion
127????}
128}
類圖:
如果我們屏蔽設計模式在本銀行系統中的應用,單從供求關系來理解這段程序最好不過了,對于一個銀行系統來說,主要包含職員和客戶,職員按分工的不同分為諸如存款職員、轉賬職員、取款職員等,客戶又分為存款客戶、取款客戶、轉賬客戶等,從這方面來講,似乎更難理解,換種方式,將銀行系統分為需求和業務,客戶對應需求,每個銀行的客戶都會對銀行產生一種需求;銀行提供的服務既是業務,職員對應業務;于是這樣產生一個自然界的恒等式,即需求=業務,如果客戶沒有需求,那么銀行就不會提供該種業務;所以在程序中不論用戶的存款、取款、轉賬需求,最終都將return一個銀行業務,單對于每一個業務的處理過程(operate),由于是銀行內部的事情,所以應封裝在業務類中,中間采用一個銀行管理對象來(bankManage)連接二者之間的交互過程。
轉載于:https://www.cnblogs.com/cdutedu/archive/2008/08/27/HelloWorld.html
總結
以上是生活随笔為你收集整理的看《你必须知道的.NET》有感--工厂模式的另类解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: generator (2)
- 下一篇: 作用域变量 var