当前位置: 首页 > news >正文

舟山市建设局网站国内搜索引擎排名2022

舟山市建设局网站,国内搜索引擎排名2022,手机app界面设计网站,网站三要素设计模式简述 设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便地复用成功的设计和体系结构。 生成器模式(创建型设计模式) 意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以…

设计模式简述

设计模式的核心在于提供了相关问题的解决方案,使得人们可以更加简单方便地复用成功的设计和体系结构

生成器模式(创建型设计模式)

意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示

生成器模式适用于:

  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时

  • 当构造过程必须允许被构造的对象有不同的表示时

具体实例(Java语言)

我们将使用 Builder 模式 编写一个 “文档” 编辑程序。一篇文档应当包含如下结构

● 含有一个标题
● 含有内容(字符串)
● 含有条目项目(列表)

Builder 类中定义了决定文档结构的方法,然后 Director 类使用该方法编写一个具体的文档。

Builder 类是抽象类,它只是声明了抽象方法。它的子类决定了具体编写文档的处理
● MDBuilder 类:使用MD编写文档
● HTMLBuilder 类:使用 HTML 编写文档

1.Builder类

/*** 声明编写文档的方法的抽象类* 1. makeTitle 编写标题 2. makeString 编写普通文本 3. makeTimes 条目 4. close* 完成文档编写的方法*/
public abstract class Builder {public abstract void makeTitle(String title);public abstract void makeString(String str);public abstract void makeH1(String str);public abstract void makeTimes(String[] items);public abstract void close();
}/*** 使用 Builder 类中声明的方法来编写文档*/
class Director {private Builder builder;public Director(Builder builder) {this.builder = builder;}public void construct() {builder.makeTitle("Build Pattern实验");builder.makeH1("实验目的");builder.makeString("利用Build模式,设计并实现一个能够同时扩展标记语言种类和生成文档种类的文档生成器");builder.makeH1("实验内容");builder.makeTimes(new String[]{"利用Build模式,设计并实现一个文档生成器。它支持多种标记语言(比如Markdown、Latex,并可以在未来支持其他标记语言),并能生成多种文档,比如html、pdf等。"});builder.close();}
}

2.MDBuilder

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;/*** MD文本编写文档*/
public class MDBuilder extends Builder {private String filename;private PrintWriter writer;public void makeTitle(String title) {filename = "Build pattern 实验.md";try {writer = new PrintWriter(new FileWriter(filename));} catch (IOException e) {e.printStackTrace();}writer.println("# " + title);}public void makeH1(String str) {writer.println("## " + str);}public void makeString(String str) {writer.println(str);}public void makeTimes(String[] items) {for (int i = 0; i < items.length; i++) {writer.println("* " + items[i]);}}public void close() {writer.close();}public String getResult() {return filename;}
}

3.HTMLBuilder类

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;/*** 使用 HTML 编写文档*/
public class HTMLBuilder extends Builder {private String filename;private PrintWriter writer;public void makeTitle(String title) {filename = "Build pattern 实验.html";try {writer = new PrintWriter(new FileWriter(filename));} catch (IOException e) {e.printStackTrace();}writer.println("<html><head><title>" + title+ "</title></head><body>");writer.println("<h1>" + title + "</h1>");}public void makeH1(String str) {writer.println("<h1>" + str + "</h1>");}public void makeString(String str) {writer.println("<p>" + str + "</p>");}public void makeTimes(String[] items) {writer.println("<ul>");for (int i = 0; i < items.length; i++) {writer.println("<li>" + items[i] + "</li>");}writer.println("</ul>");}public void close() {writer.println("</body></html>");writer.close();}public String getResult() {return filename;}
}

4.Main类

/*** 实际编写文档的是 Builder 类*/
public class Main {public static void main(String[] args) {// MD文档生成MDBuilder textBuilder = new MDBuilder();Director director = new Director(textBuilder);director.construct();String result = textBuilder.getResult();System.out.println(result);// HTML文档生成HTMLBuilder htmlBuilder = new HTMLBuilder();Director director1 = new Director(htmlBuilder);director1.construct();String result1 = htmlBuilder.getResult();System.out.println(result1);}
}


 

http://www.dinnco.com/news/39925.html

相关文章:

  • h5跳转小程序黑帽seo联系方式
  • 郑州网络营销网站长沙推广引流
  • 自己做的网站地址手机怎么打不开昆明网站seo公司
  • iis7.5部署网站灰色词秒收录代发
  • wordpress子主题 如何在文下实现最近文章百度seo培训公司
  • wordpress 子分类上海网络优化服务
  • 网络营销意思seo排名优化培训怎样
  • 眉县网站建设广州seo优化电话
  • 在家有电脑怎么做网站yahoo搜索引擎提交入口
  • 株洲建设网站的公司网络营销网络推广
  • 餐厅网站建设方案中国seo关键词优化工具
  • 嘉兴装修公司做网站360seo
  • 无锡专业制作外贸网站的公司最新经济新闻
  • 设计好的网站免费的网站域名查询
  • 做网站提升公司形象网站收录网
  • 网站制作的前期主要是做好什么工作鞍山seo优化
  • 校园网站建设方案模板下载企业网站建设需要多少钱
  • 较便宜的网站建设店铺数据分析主要分析什么
  • 换友链的网站站长工具seo排名查询
  • 电子商务seo是指什么意思seo网上培训
  • 手机网站建设价钱昆山优化外包
  • jquery mobile 手机网站惠州网站排名提升
  • 上海网站优化案例制作网站的工具
  • 机关门户网站建设活动推广方式
  • 小说网站充值接口怎么做的免费域名解析
  • 百度站长平台h5网站网址
  • wordpress 下载目录湖南靠谱seo优化报价
  • 哈尔滨手机建站模板如皋网站制作
  • 网站上线要准备什么朝阳网站建设
  • 营销型网站建设公司排名北京seo设计公司