日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

设计模式之——Builder建造模式

發布時間:2025/3/15 asp.net 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式之——Builder建造模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Builder模式又叫建造模式,是用于組裝具有復雜結構的實例的模式。

示例程序是編寫一個文檔,并且寫入到文件中,該文檔具有以下結構,含有標題,字符串,一些條目。

  • Builder抽象類,為建造模式的核心
package site.wangxin520.gof.builder;/*** 建造者模式的核心——建造者* 負責定義用于生成實例的API接口* @author wangXgnaw* 在本類中,定義了四個方法,分別是標題,字符串和條目,最后的close()方法則用于生成文件以及關閉相應的流*/ public abstract class Builder {/*** 抽象方法,傳入字符串標題,用于生成文件的字符串* @param title*/public abstract void makeTitle(String title);/*** 抽象方法,傳入字符串* @param string*/public abstract void makeString(String string);/*** 抽象方法,用于傳入一個字符串數組,生成文件中對應的條目* @param items*/public abstract void makeItems(String[] items);/*** 抽象方法,關閉相應的流*/public abstract void close();}
  • Director 監工類,調用builder的方法
package site.wangxin520.gof.builder;/*** 管理者,監工* 負責使用builder角色的接口來生成實例,它并不依賴于具體實現類,而是面對抽象類/父類,或者接口進行操作* @author wangXgnaw* 在本類匯總有一個Builder的屬性。* 采用的是多態的方法,父類接口指向子類對象*/ public class Director {private Builder builder;/*** 構造器傳入Builder屬性的具體實現* @param builder*/public Director(Builder builder){this.builder=builder;}/*** 生成文檔的方法*/public void construct(){builder.makeTitle("標題:大家好");builder.makeString("從早上到下午");builder.makeItems(new String[]{"早安","午安",});builder.makeString("晚上");builder.makeItems(new String[]{"晚安","拜拜",});builder.close();}}
  • HtmlBuilder 繼承了Builder類,實現了相應的方法
package site.wangxin520.gof.builder;import java.io.File; import java.io.FileWriter; import java.io.IOException;/*** 生成HTML文件的建造模式,對Builder抽象類的具體實現* @author wangXgnaw**/ public class HtmlBuilder extends Builder{private StringBuilder sb=new StringBuilder();@Overridepublic void makeTitle(String title) {sb.append("<html>").append("<head><title>").append(title).append("</title></head><body>");}@Overridepublic void makeString(String string) {sb.append("<p>").append(string).append("</p>");}@Overridepublic void makeItems(String[] items) {sb.append("<ul>");for (String string : items) {sb.append("<li>").append(string).append("</li>");}sb.append("</ul>");}@Overridepublic void close() {sb.append("</body></html>");FileWriter fw=null;try {fw=new FileWriter(new File("E:/TextBuilder.html"));fw.write(sb.toString());} catch (IOException e) {e.printStackTrace();} finally {if(fw!=null){try {fw.close();} catch (IOException e) {e.printStackTrace();}}}}}
  • TextBuilder同上
package site.wangxin520.gof.builder;import java.io.File; import java.io.FileWriter; import java.io.IOException;/*** 生成txt文件的建造模式,對Builder抽象類的具體實現* * @author wangXgnaw**/ public class TextBuilder extends Builder {private StringBuilder sb = new StringBuilder();@Overridepublic void makeTitle(String title) {sb.append("========================================").append("\r\n");sb.append("【" + title + "】").append("\r\n");sb.append("========================================").append("\r\n").append("\r\n");}@Overridepublic void makeString(String string) {sb.append("【.】" + string).append("\r\n").append("\r\n");}@Overridepublic void makeItems(String[] items) {for (String string : items) {sb.append("\t" + string).append("\r\n");}sb.append("\r\n");}@Overridepublic void close() {sb.append("========================================");FileWriter fw = null;try {fw = new FileWriter(new File("E:/TextBuilder.txt"));fw.write(sb.toString());} catch (IOException e) {e.printStackTrace();} finally {if (fw != null) {try {fw.close();} catch (IOException e) {e.printStackTrace();}}}}}
  • Main,測試類
package site.wangxin520.gof.builder;/*** 建造者模式的測試類* @author wangXgnaw**/ public class Main {public static void main(String[] args) {//先構建一個Builder,采用的是TextBuilder的實現類Builder b1=new TextBuilder();//將Builder實例傳入到Director中Director director1=new Director(b1);//調用構造方法,生成文檔 director1.construct();//與上同Builder b2=new HtmlBuilder();Director director2=new Director(b2);director2.construct();}}
  • 測試結果:

沒有報錯,并且成功的在E盤中寫入倆文件

TextBuilder.txt

TextBuilder.html(這里忘記改名字了)

轉載于:https://www.cnblogs.com/wangxinblog/p/7639504.html

總結

以上是生活随笔為你收集整理的设计模式之——Builder建造模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色涩色| 狠狠干2021 | 亚洲欧美偷拍视频 | 交专区videossex农村 | 青青青青青青青青草 | 欧美国产精品一二三 | 久久精品www人人爽人人 | 老司机激情视频 | 波多野结衣精品视频 | 美女张开双腿让男人捅 | 亚洲成人网在线观看 | 亚洲一级片免费看 | 色图一区| 婷婷久久精品 | 日本乱码一区二区 | 国产性70yerg老太 | 黄色激情av | a黄视频| 日本一区二区在线免费观看 | 三上悠亚一区二区在线观看 | 成人午夜视频网站 | 国产夫妻av | 婷婷免费视频 | 黄色a一级视频 | 亚洲偷自 | av免费看网址 | 特级特黄刘亦菲aaa级 | 国产一级片久久 | 国产原创在线播放 | 少妇又紧又色又爽又刺激视频 | 午夜合集| 亚洲精品18p | 免看黄大片aa | 精品视频在线观看 | 国产黄色片免费在线观看 | 国产日产亚洲系列最新 | 久久发布国产伦子伦精品 | 亚洲大尺度av| 超碰2022 | 91精品久久久久久久 | 欧美日韩在线观看一区二区三区 | 成人录像 | 亚洲天堂午夜 | 亚洲AV无码成人精品区东京热 | 福利视频h | 日韩欧美亚洲一区二区三区 | 少妇高潮一区二区三区99 | 美女少妇一区二区 | 超碰在线97国产 | 婷婷色综合网 | 玩偶姐姐在线看 | 欧美日韩国产成人精品 | 性视频播放免费视频 | 免费看黄色片子 | 国产精品1 | 国产精品亚洲lv粉色 | 无码人妻精品一区二区中文 | 欧美日韩亚 | 久久久99国产精品免费 | 成人毛片18女人毛片 | 草久久久久久 | 67194成人在线观看 | 夜夜骑天天操 | 美女av一区二区 | 超碰成人在线观看 | 污污小说在线观看 | 国产精品美女久久久久 | 3o一40一50一6o女人毛片 | www.99av| 青青国产在线观看 | 三级av片 | 三级第一页 | 聚色av| 国模吧无码一区二区三区 | 欧美性做爰猛烈叫床潮 | 日韩三级视频在线 | 色欲久久久天天天精品综合网 | 800av免费在线观看 | 日韩中文字幕一区二区三区四区 | 九九热re| 不卡av电影在线观看 | 欧美,日韩,国产在线 | 免费裸体视频网站 | 欧美精品亚洲 | 男女视频免费看 | 一区二区三区免费看 | 国产5区| 日韩精品一二三四 | 四虎4hu永久免费网站影院 | 久久精品国产亚洲av麻豆蜜芽 | 大j8福利视频导航 | 青青草原综合久久大伊人精品 | 欧美精品91 | 中国免费黄色 | 中文字幕第23页 | 国产最新自拍视频 | 日本阿v视频 | 中国在线观看片免费 | 七七色影院 |