乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      設(shè)計(jì)模式——構(gòu)造者模式

       Coder編程 2020-07-06

      構(gòu)造器模式_組裝復(fù)雜實(shí)例(逐步構(gòu)造出一個(gè)復(fù)雜的實(shí)例

       

      /**
       * 指揮者
       * @author maikec
       * @date 2019/5/11
       */
      public class Director {
          private final AbstractBuilder builder;
          public Director(AbstractBuilder builder){
              this.builder = builder;
          }
          public void builderMessage(){
              builder.createHead();
              builder.createBody();
              builder.signature();
          }
      }
      
      /**
       * 抽象構(gòu)造器
       * @author maikec
       * @date 2019/5/11
       */
      public abstract class AbstractBuilder {
          protected Message message;
          protected Head head;
          protected Body body;
          protected Author author;
          /**
           * 創(chuàng)建消息頭部
           * @return
           */
          protected abstract Head createHead();
      
          /**
           * 創(chuàng)建消息體
           * @return
           */
          protected abstract Body createBody();
      
          /**
           * 署名
           * @return
           */
          protected abstract Author signature();
      
          public Message getMessage(){
              return message;
          }
      }
      
      /**
       * @author maikec
       * @date 2019/5/11
       */
      public class Message {
          private Head head;
          private Body body;
          private Author author;
          public Message(){}
          public Message(Head head,Body body,Author author){
              this.head = head;
              this.body = body;
              this.author = author;
          }
      
          @Override
          public String toString() {
               super.toString();
               if (head !=null || body != null || author != null){
                   StringBuffer sb = new StringBuffer( "[" );
                   if (head != null){
                       sb.append( head.toString() );
                   }
                   if (body != null){
                       sb.append( body.toString() );
                   }
                   if (author != null){
                       sb.append( author.toString() );
                   }
                   sb.append( "]" );
                   return sb.toString();
               }
               return null;
          }
      }
      
      /**
       * @author maikec
       * @date 2019/5/11
       */
      public class Head {
          private String name;
          public Head(){}
          public Head(String name){
              this.name = name;
          }
          @Override
          public String toString() {
              super.toString();
              return name == null ? "Head" : name;
          }
      }
      
      /**
       * @author maikec
       * @date 2019/5/11
       */
      public class Body {
          private String name;
          public Body(){}
          public Body(String name) {
              this.name = name;
          }
      
          @Override
          public String toString() {
               super.toString();
               return name == null ? "Body" : name;
          }
      }
      
      /**
       * @author maikec
       * @date 2019/5/11
       */
      public class Author {
          private String name;
          public Author(){}
          public Author(String name) {
              this.name = name;
          }
      
          @Override
          public String toString() {
               super.toString();
               return name == null ? "Author" : name;
          }
      }
      
      /**
       * Email構(gòu)造器
       * @author maikec
       * @date 2019/5/11
       */
      public class EmailBuilder extends AbstractBuilder {
          @Override
          protected Head createHead() {
               head = new Head("Email Head");
               return head;
          }
      
          @Override
          protected Body createBody() {
              body = new Body("Email Body");
              return body;
          }
      
          @Override
          protected Author signature() {
              author =  new Author("maikec");
              return author;
          }
      
          @Override
          public Message getMessage() {
              return new Message( head,body,author );
          }
      }

      附錄

      github.com/maikec/patt… 個(gè)人GitHub設(shè)計(jì)模式案例

      聲明

      引用該文檔請(qǐng)注明出處

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多