<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      說說設(shè)計模式~建造者模式(Builder)

      返回目錄

      建造者模式是我的"設(shè)計模式"里創(chuàng)建型模式里的最后一篇,這種模式在實現(xiàn)中,很多架構(gòu)都用到了,如MVC,MVP,MVVM,它們都是有建造者模式的精髓的,即,創(chuàng)建與表現(xiàn)分享,我們的MVC何嘗不是,我們的MVVM又何嘗不是呢,我們做軟件的,換膚是常有的事,其實換膚的實現(xiàn)不就是建造者模式最好的體現(xiàn)嗎,呵呵.

      定義

      將一個復(fù)雜對象的構(gòu)造與它的表示分離,使同樣的構(gòu)建過程可以創(chuàng)建不同的表示,這樣的設(shè)計模式被稱為建造者模式。

      何時能用到它?

      1 當創(chuàng)建復(fù)雜對象的算法應(yīng)該獨立于該對象的組成部分以及它們的裝配方式時。
      2 當構(gòu)造過程必須允許被構(gòu)造的對象有不同表示時。

      建造者模式的結(jié)構(gòu)圖

      建造者模式實現(xiàn)說明

      1 Person:為一個主對象,它可能很大,很復(fù)雜。
      2 Man:為Person下的一個分支,一個子類,本例中指男人對象
      3 PersonDirector:為建造者模式中的指導(dǎo)者,它決定的創(chuàng)建產(chǎn)品的過程,順序
      4 PersonBuilder:實現(xiàn)建造過程所需要的行為接口,PersonDirector中會用到它

      5 ManBuilder:這是一個具體的執(zhí)行者,它可能有多個,每個執(zhí)行者負責(zé)自己的部分

      建造者模式的C#實現(xiàn)

        public class Person
          {
              public string Name { get; set; }
              public short Gander { get; set; }
              public String Head { get; set; }
              public String Body { get; set; }
              public String Foot { get; set; }
              public void SetHead(string content) { Console.WriteLine(content); Head = content; }
              public void SetBody(string content) { Console.WriteLine(content); Body = content; }
              public void SetFoot(string content) { Console.WriteLine(content); Foot = content; }
              public override string ToString()
              {
                  return string.Format("Head={0},Body={1},Foot={2}", Head, Body, Foot);
              }
          }
          public class Man : Person
          {
              public Man()
              {
                  this.Gander = 1;
              }
          }
          public interface PersonBuilder
          {
              void buildHead();
              void buildBody();
              void buildFoot();
              Person buildPerson();
          }
          public class PersonDirector
          {
              public Person constructPerson(PersonBuilder pb)
              {
                  pb.buildHead();
                  pb.buildBody();
                  pb.buildFoot();
                  return pb.buildPerson();
              }
          }
          public class ManBuilder : PersonBuilder
          {
              Person person;
              public ManBuilder()
              {
                  person = new Man();
              }
              public void buildBody()
              {
                  person.SetBody("建造男人的身體");
              }
              public void buildFoot()
              {
                  person.SetFoot("建造男人的腳");
              }
              public void buildHead()
              {
                  person.SetHead("建造男人的頭");
              }
              public Person buildPerson()
              {
                  return person;
              }
       
          }
      }

      下面是調(diào)用程序

          PersonDirector pd = new PersonDirector();
          Person person = pd.constructPerson(new ManBuilder());
          Console.WriteLine(person.ToString());

      程序截圖

      返回目錄

      posted @ 2014-09-03 15:10  張占嶺  閱讀(1516)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 国产成人啪精品午夜网站| 亚洲第一成人网站| 99久久久国产精品免费无卡顿| 国产精品www夜色视频| 亚洲精品一区二区毛豆| 亚洲熟少妇在线播放999| 久热这里有精品视频播放| 精品人妻av区乱码| 国产精品va在线观看无码不卡| 熟女系列丰满熟妇AV| 色综合网天天综合色中文| 日韩精品成人网页视频在线| 日韩乱码人妻无码中文字幕视频| 国产亚洲精品第一综合| 日本A级视频在线播放| 国产中文字幕精品免费| 久久人人妻人人爽人人爽| 日本欧美一区二区免费视频| 四虎影视一区二区精品| 国产精品白丝久久av网站| 亚洲色大成网站WWW国产| 国产精成人品日日拍夜夜| 久久精品免费自拍视频| 欧美一级黄色影院| 午夜福利高清在线观看| 少妇人妻av毛片在线看| 无码日韩精品一区二区三区免费| 亚洲人成小说网站色在线 | 泽普县| 精品国产乱码久久久久久影片| 91福利一区福利二区| 天天躁久久躁日日躁| 久久人与动人物a级毛片| 国产片AV国语在线观看手机版| 朝阳市| 一本色道国产在线观看二区 | 亚洲天堂一区二区三区四区 | 亚洲国产精品午夜福利| 亚洲线精品一区二区三八戒| 人人妻人人澡人人爽欧美一区双| 国产成人欧美一区二区三区在线 |