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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android Ap 开发 设计模式第七篇:生成器模式

發布時間:2023/12/4 Android 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android Ap 开发 设计模式第七篇:生成器模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  Builder Pattern

模式解讀

  生活在深圳這所高速發展的城市,高樓大廈林立。所謂萬丈高樓平地起,在我們感慨樓層的高聳之外,更要配服樓層的建造者和設計者。大樓首先得打穩地基、搭建骨架,再由下往上一層層蓋上去。而這樣的架構從程序的設計模式來說有個專用名詞叫:“?Builder ?”。

  

場景模擬

  由一個固定的建筑材料“固定的字符串”,然后將這些建筑材料組合拼裝,按照樓層的需要建造不同的大樓層,如:商務層、購務層、停車層等“組合拼裝字備份域控制器串”。

?

功能演示

  測試程序結構圖如下:

?

  UML圖中,共有四個類:

  Builder 抽象類:不含實際處理內容,僅聲明抽象方法。

  Director 類:負責產生文件的類

  TextBuilder 類:產生一般文件格式文件

  HtmlBuilder 類:產生HTML格式文件

?

  Builder 抽象類

?

/**
?*?聲明產生“文件”的所有方法的抽象類。
?*?
?*?@author?Administrator
?*
?
*/
public?abstract?class?Builder?{
????
public?abstract?void?makeTitle(String?title);//產生文件中的標題
????public?abstract?void?makeString(String?str);????//產生文件中的字符串
????public?abstract?void?makeItems(String[]?items);????//產生文件中的項目
????public?abstract?Object?getResult();????//取得完成文件的方法
}

?

  Director 類

?

public?class?Director?{

????
private?Builder?builder;

????
/**
?????*?傳入Builder?的子類對象
?????*?@param?builder
?????
*/
????
public?Director(Builder?builder)?{
????????
this.builder?=?builder;
????}
????
????
/**
?????*?建立?文件
?????*?@return
?????
*/
????
public?Object?construct(){
????????builder.makeTitle(
"terry");
????????builder.makeString(
"android?developer");
????????builder.makeItems(
new?String[]{"Framework","java","native","HAL","Service"});
????????builder.makeString(
"windows?phone?7?developer");
????????builder.makeItems(
new?String[]{"for?silverlight","XNA"});
????????
return?builder.getResult();
????}
????
}

?

  該 類的構造函數的參數是 Builder 類型,但實際上并沒有任何Builder 類的對象實例被傳遞出去作為參數。因為Builder 類是抽象類,根本無法產生對象實例。實際上傳給Director 的構造函數是Builder 的子類,根據所傳進來的類型決定產生文件的格式。

  因此如果想要達到產生文件的目的,Builder 必須聲明一些必要而且面面俱到的方法群組。

  TextBuilder 類

?

public?class?TextBuilder?extends?Builder{

????
private?StringBuffer?buffer=new?StringBuffer();
????
????@Override
????
public?Object?getResult()?{
????????
//?TODO?Auto-generated?method?stub
????????buffer.append("======================\n");
????????
return?buffer.toString();
????}

????@Override
????
public?void?makeItems(String[]?items)?{
????????
//?TODO?Auto-generated?method?stub
????????for(String?str:items)
????????{
????????????buffer.append(str
+"\n");
????????}
????????
????}

????@Override
????
public?void?makeString(String?str)?{
????????
//?TODO?Auto-generated?method?stub
????????buffer.append(str+"\n");
????????
????}

????@Override
????
public?void?makeTitle(String?title)?{
????????
//?TODO?Auto-generated?method?stub
????????buffer.append("=========================\n");
????????buffer.append(title
+"\n");?
????}

}

?

  HtmlBuilder 類

?

public?class?HtmlBuilder?extends?Builder{
????
private?String?fileName;
????
????
private?StringBuffer?writer=new?StringBuffer();
????
????

????@Override
????
public?Object?getResult()?{
????????
//?TODO?Auto-generated?method?stub
????????writer.append("</body></html>");?
????????
return?writer.toString();
????}

????@Override
????
public?void?makeItems(String[]?items)?{
????????
//?TODO?Auto-generated?method?stub
????????writer.append("<ul>");
????????
for(String?str:items){
????????????writer.append(
"<li>"+str+"</li>");
????????}
????????writer.append(
"</ul>");
????}

????@Override
????
public?void?makeString(String?str)?{
????????
//?TODO?Auto-generated?method?stub
????????writer.append("<p>"+str+"</p>");
????}

????@Override
????
public?void?makeTitle(String?title)?{
????????
//?TODO?Auto-generated?method?stub
????????fileName=title+".html";
????????writer.append(fileName);
????????
????????writer.append(
"<html><head><title>"+title+"</title></head><body>");
????????writer.append(
"<h1>"+title+"</h1>");
????}
????
????
}

?

運行效果如下:

?

源碼下載:

  生成器模式

?

 再發個求職信息:

  求職android(可勝任Framework及 以上工作。一年半經驗) 、Windows Phone 7(軟件、XNA) 開發工作。

?

?

總結

以上是生活随笔為你收集整理的Android Ap 开发 设计模式第七篇:生成器模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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