十个app制作网站,如何学习网站建设app,经营范围网站开发运营,网站建设调研Builder Pattern 模式解读 生活在深圳这所高速发展的城市#xff0c;高楼大厦林立。所谓万丈高楼平地起#xff0c;在我们感慨楼层的高耸之外#xff0c;更要配服楼层的建造者和设计者。大楼首先得打稳地基、搭建骨架#xff0c;再由下往上一层层盖上去。而这样的架构从程序… 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 buffernew 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 writernew 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(listr/li); } writer.append(/ul); } Override public void makeString(String str) { // TODO Auto-generated method stub writer.append(pstr/p); } Override public void makeTitle(String title) { // TODO Auto-generated method stub fileNametitle.html; writer.append(fileName); writer.append(htmlheadtitletitle/title/headbody); writer.append(h1title/h1); } } 运行效果如下 源码下载 生成器模式 再发个求职信息 求职android可胜任Framework及 以上工作。一年半经验 、Windows Phone 7软件、XNA 开发工作。