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

网站建设企炬小规模公司做网站成本是什么

网站建设企炬,小规模公司做网站成本是什么,讨债女企业家中标公司被强执,wordpress多张页面左右滑动1. 什么是建造者模式 建造者模式 (Builder Pattern)#xff0c;也被称为生成器模式#xff0c;是一种创建型设计模式。 定义#xff1a;将一个复杂对象的构建与表示分离#xff0c;使得同样的构建过程可以创建不同的表示。 建造者模式要解决的问题#xff1a; 建造者模…1. 什么是建造者模式 建造者模式 (Builder Pattern)也被称为生成器模式是一种创建型设计模式。 定义将一个复杂对象的构建与表示分离使得同样的构建过程可以创建不同的表示。 建造者模式要解决的问题 建造者模式可以将部件和其组装过程分开一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象而无需知道其内部的具体构造细节。 2. 建造者模式的结构 建造者Builder模式包含以下4个角色 抽象建造者类Builder规定要实现复杂对象的哪些部分的创建并不涉及具体的部件对象的创建。具体建造者类ConcreteBuilder实现 Builder 接口完成复杂产品的各个部件的具体创建方法。在构造过程完成后提供一个方法返回创建好的复杂产品对象。产品类Product要创建的复杂对象 (包含多个组成部件)。指挥者类Director调用具体建造者来创建复杂对象的各个部分在指挥者中不涉及具体产品的信息只负责保证对象各部分完整创建或按某种顺序创建客户端一般只需要与指挥者进行交互。 3. 代码示例 下面是一个SQL查询生成器的例子展示如何使用建造者模式生成不同数据库的SQL查询语句。 产品类 public class SqlQuery {private String select;private String from;private String where;private String groupBy;private String orderBy;private String limit;public SqlQuery(String select, String from) {this.select select;this.from from;}// Getters and settersOverridepublic String toString() {StringBuilder sb new StringBuilder();sb.append(SELECT ).append(select).append( FROM ).append(from);if (where ! null !where.isEmpty()) {sb.append( WHERE ).append(where);}if (groupBy ! null !groupBy.isEmpty()) {sb.append( GROUP BY ).append(groupBy);}if (orderBy ! null !orderBy.isEmpty()) {sb.append( ORDER BY ).append(orderBy);}if (limit ! null !limit.isEmpty()) {sb.append( LIMIT ).append(limit);}return sb.toString();} }抽象建造者 public abstract class SqlQueryBuilder {protected SqlQuery sqlQuery;public void createSqlQuery(String select, String from) {sqlQuery new SqlQuery(select, from);}public SqlQuery getSqlQuery() {return sqlQuery;}public abstract void buildWhere();public abstract void buildGroupBy();public abstract void buildOrderBy();public abstract void buildLimit(); }具体建造者 public class MySqlQueryBuilder extends SqlQueryBuilder {Overridepublic void buildWhere() {sqlQuery.setWhere(1 1); // MySQL不需要限制行数}Overridepublic void buildGroupBy() {sqlQuery.setGroupBy(deptno, ename, hiredate);}Overridepublic void buildOrderBy() {sqlQuery.setOrderBy(hiredate DESC);}Overridepublic void buildLimit() {sqlQuery.setLimit(0, 10); // MySQL分页从0开始} }public class OracleQueryBuilder extends SqlQueryBuilder {Overridepublic void buildWhere() {sqlQuery.setWhere(rownum 1000); // Oracle查询最多返回1000行数据}Overridepublic void buildGroupBy() {sqlQuery.setGroupBy(deptno, ename, hiredate);sqlQuery.setSelect(sqlQuery.getSelect() , deptno, ename, hiredate);}Overridepublic void buildOrderBy() {sqlQuery.setOrderBy(hiredate);}Overridepublic void buildLimit() {sqlQuery.setLimit(10);} }指挥者类 public class SqlQueryDirector {private SqlQueryBuilder sqlQueryBuilder;public void setSqlQueryBuilder(SqlQueryBuilder sqlQueryBuilder) {this.sqlQueryBuilder sqlQueryBuilder;}public void buildSqlQuery(String select, String from) {sqlQueryBuilder.createSqlQuery(select, from);sqlQueryBuilder.buildWhere();sqlQueryBuilder.buildGroupBy();sqlQueryBuilder.buildOrderBy();sqlQueryBuilder.buildLimit();} }客户端 public class Client {public static void main(String[] args) {// 创建MySQL建造者SqlQueryBuilder mySqlQueryBuilder new MySqlQueryBuilder();// 创建Oracle建造者SqlQueryBuilder oracleQueryBuilder new OracleQueryBuilder();// 指导者SqlQueryDirector sqlQueryDirector new SqlQueryDirector();// 构建MySQL查询语句sqlQueryDirector.setSqlQueryBuilder(mySqlQueryBuilder);sqlQueryDirector.buildSqlQuery(*, table1);SqlQuery mySqlQuery mySqlQueryBuilder.getSqlQuery();System.out.println(MySQL Query: mySqlQuery);// 构建Oracle查询语句sqlQueryDirector.setSqlQueryBuilder(oracleQueryBuilder);sqlQueryDirector.buildSqlQuery(*, table2);SqlQuery oracleQuery oracleQueryBuilder.getSqlQuery();System.out.println(Oracle Query: oracleQuery);} }4. 建造者模式在实际开发中的应用 建造者模式在实际开发中的应用主要体现在以下几个方面 复杂对象的创建例如在创建一个复杂对象时如果这个对象有很多可选参数使用建造者模式可以避免构造函数参数列表过长的问题。多步骤创建过程例如在构建SQL查询、创建报告等需要多个步骤的过程中使用建造者模式可以将这些步骤分离出来使得代码更易于维护和扩展。对象的不变性例如创建一个不可变对象时可以使用建造者模式来确保对象在创建后不被修改。 5. 建造者模式与工厂模式的区别 工厂模式 用来创建不同但是相关类型的对象继承同一父类或者接口的一组子类由给定的参数来决定创建哪种类型的对象。主要关注的是创建单个对象。 建造者模式 用来创建一种类型的复杂对象通过设置不同的可选参数“定制化”地创建不同的对象。主要关注的是如何一步一步创建一个复杂的对象。更强调创建过程的分步和顺序。 总之建造者模式可以很好地解决创建复杂对象时的代码复用性和可维护性问题而工厂模式则更加适用于创建一组相关的对象。
http://www.pierceye.com/news/601988/

相关文章:

  • 网站备案属于公司哪一块石家庄最新状况
  • 秦州建设网站免费代刷网站推广
  • 怎么查看一个网站是用什么程序做的我的家乡湛江网站设计
  • 沈阳网页模板建站开发手机app多少钱
  • 全国建设注册中心网站网页设计师培训价格
  • 做网站地图泰安百度公司代理商
  • 网站后台管理员密码汽车网站更新怎么做
  • 广东省网站备案查询怎么建设网站空间和备案
  • 企业网站软件下载红木家具网站模板
  • 如何创建网站步骤湖北网站制作公司的联系方式
  • 佛山建网站费用seo推广效果怎么样
  • 如何选择网站建设公司永州网页定制
  • 淮北市重点工程建设局网站重庆哪家网站
  • 音乐网站开发背景及意义自定义建设网站
  • 商标设计网站猪八戒宝塔一键wordpress
  • 公司网站用什么开发网站 建设 计划书
  • 安陆市城乡建设局网站w10怎么做信任网站
  • wordpress上站工具内网门户网站
  • 商城网站服务器漳浦建设银行网站
  • 可视化 网站开发工具音乐网站后台管理模板
  • 网站架构功能模块及描述网站聊天怎么做
  • 京东电子商务网站的建设做网站运营需要什么资源
  • 市北建筑建网站哪家好个体户可以做网站吗
  • 怎么建自己的网站?网站优化包括哪些内容
  • 网站后台登录域名国外网站网站app
  • 山西建设工程协会网站wordpress二次元主题个人
  • 加强人社局网站建设获取小程序api
  • 服务器网站备案学生ppt模板免费下载 素材
  • 手机做网站软件运营管理培训
  • 迅博威网站建设南宁 建网站 公司