程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 設計模式初探——結構:因為它簡單,也因為他美麗

設計模式初探——結構:因為它簡單,也因為他美麗

編輯:C#入門知識

  一個好的程序,有一個公用標准,叫高內聚,低耦合,但是,這是一個度的把握,再高的內聚性也避免不了溝通和交際,一味地抽象,繼承是不科學的,我們應該尋找一種更好地解決方法,恰恰在這類設計模式,前人已經替我們做好了鋪墊。         結構?什麼是結構,在建築上是承重的部分,意思就是骨架,只有支好一個好的骨架,才能讓我們更有效的工作,在面向對象的設計中,類是一根根骨頭,將這些東西連接起來的是“關系”,怎麼處理這些關系是我們現在這種設計模式要學習的!             還是老樣子,具體的例子大家去看書就ok,這裡咱們談談擴展的兩種知識:   一:聚合和組合(或者稱為合成)         聚合,是種較弱的關系,例如足球場和觀眾,就是聚合的關系,他們互相獨立,有一場足球賽的時候,他們才聚合到一起。         組合,是種較強的關系,例如人與四肢,人和四肢是不可分割的一部分,他們不以意志轉移為轉移。         再編程中,這兩種關系幫助我們拜托了過多繼承帶來的困擾! 具體應用: 聚合 [csharp]   //抽象軟件       abstract class Soft       {           public abstract void Run();       }          //游戲       class Game : Soft       {           public override void Run()           {               Console.WriteLine ("運行手機游戲!");           }       }          //通訊錄       class AdressList : Soft       {           public override void Run()           {               Console.WriteLine ("運行手機通訊錄!");           }       }          //抽象品牌       abstract class Brand       {           protected Soft soft;              //設置軟件           public void SetSoft(Soft soft)           {               this.soft = soft;           }              public abstract void Run();       }          //品牌N       class BrandN : Brand       {           public override void Run()           {               soft .Run ();           }       }          //品牌M       class BrandM : Brand       {           public override void Run()           {               soft.Run ();           }       }         二:Hashtable         它的中文名字叫哈希表,他是通過key值來控制存入其中的對象,它是種容器,能夠方便檢索,快速查找,簡單的理解就是這樣,我們來看看應用   [csharp]   using System;  using System.Collections; //使用Hashtable時,必須引入這個命名空間     class hashtable     {     public static void Main()     {     Hashtable ht=new Hashtable(); //創建一個Hashtable實例     //key值唯一,value值可以重復.     ht.Add("E","e");//添加key/鍵值對     ht.Add("A","a");     ht.Add("C","c");     ht.Add("B","b");     string s=(string)ht["A"];     if(ht.Contains("E")) //判斷哈希表是否包含特定鍵,其返回值為true或false     Console.WriteLine("the E key:exist");     ht.Remove("C");//移除一個key/鍵值對     Console.WriteLine(ht["A"]);//此處輸出a     ht.Clear();//移除所有元素     Console.WriteLine(ht["A"]); //此處將不會有任何輸出     }     }      

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved