日韩性视频-久久久蜜桃-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建造模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 麻豆综合网 | 国产一级二级三级精品 | 日韩电影网站 | 美女aaa| 91精品国产综合久久久蜜臀粉嫩 | 精品国产一区二区三区日日嗨 | 久久久久久久美女 | 欧美野外猛男的大粗鳮 | 美女扒开腿让男生桶 | 亚洲成av人片一区二区 | 香蕉视频首页 | 久久一区二区三区精品 | av直播在线观看 | 男人插女人免费视频 | 精品在线视频一区二区 | 综合视频在线观看 | a国产免费| 亚洲精品一区二区在线观看 | 成人污污视频 | 亚洲成人v| 久久精品视频久久 | 国产精品久久777777毛茸茸 | 鸥美毛片 | 伊伊成人 | 美女扒开腿让男生桶 | 高清欧美性猛交xxxx | 亚洲精品综合精品自拍 | 伊人中文在线 | 欧美中文字幕一区二区三区 | www.狠狠艹| 成人毛片一区二区三区 | 国产精品一区二区毛片 | 精精国产xxxx视频在线播放 | 99国产精品99久久久久久 | 91久久网 | a级片在线观看视频 | 天天射天天色天天干 | 裸体男女树林做爰 | 九九五月天 | 国语对白清晰刺激对白 | 久久精品国产一区二区 | 松本一香在线播放 | 日韩毛片高清在线播放 | 国产一级特黄a高潮片 | 中国丰满老妇xxxxx交性 | 奇米视频在线 | 在线免费观看一区二区 | 四虎看黄 | 亚洲熟乱 | 久久久久久久黄色 | 自拍偷拍av | 国产区123| 综合久久久久 | 日韩视频一区二区三区 | 窝窝午夜视频 | 国产精品久久成人 | 黄色一级视频片 | 你懂的在线视频网站 | 99在线免费视频 | 激情九九 | 中国新婚夫妻性猛交 | 男人和女人搞鸡 | 69av在线播放 | 亚洲国产精品久久精品怡红院 | 一区一区三区产品乱码 | 亚洲精品久久久久久动漫器材一区 | 日韩va亚洲va欧美va久久 | 特黄av | 免费午夜网站 | 三女同志亚洲人狂欢 | 精品国产污污免费网站入口 | 欧美成人免费在线观看视频 | 欧美成人r级一区二区三区 中文无码一区二区三区在线观看 | 人人干人人草 | 美女一区二区三区视频 | 日日夜夜爱 | 国产一级在线观看视频 | 激情亚洲网 | 一区二区三区精 | 国产成人精品aa毛片 | 嫩草影院永久入口 | 一区二区三区观看 | 成人h动漫精品一区二区器材 | 熟妇的味道hd中文字幕 | 精品国产亚洲一区二区麻豆 | 免费在线日本 | 伊人久久大香线蕉综合75 | 干干干日日日 | 天天想你在线观看完整版电影免费 | 加勒比日韩 | 精品国产成人亚洲午夜福利 | 日韩另类av | 男操女视频网站 | 香蕉网伊| 色女生影院 | 手机看片日韩福利 | 免费成人av网址 | 国产女18毛片多18精品 | 99久久香蕉 |