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

网站建设完成后期维护网站项目开发流程

网站建设完成后期维护,网站项目开发流程,北京华夏工程建设监理公司网站,青岛网站建设市场分析建造者模式 (将一个 复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。) 建造者模式是一种创建型的模式,有一些对象的创建过程new 是很繁杂的。 什么时候去使用建造者模式 由上文可以得出在一些对象创建…

建造者模式

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

建造者模式是一种创建型的模式,有一些对象的创建过程new 是很繁杂的。

什么时候去使用建造者模式

由上文可以得出在一些对象创建非常繁杂的场景就可以使用建造者模式。指定创建顺序以免出错。

还有一种场景。可能产品细节会改变。比如升级了第二代。这时候只需要重新定义一个具体的建造者就可以了。方便于扩展。

建造者模式与工厂模式的不同:

建造者模式最主要的功能是基本方法的调用顺序安排,这些基本方法已经实现了, 顺序不同产生的对象也不同; 工厂方法则重点是创建,创建零件是它的主要职责,组装顺序则不是它关心的。

 

@Builder 注解用了建造者模式。

 代码:

1 . 建造对象

/*** 肯德基的套餐(fond+drink)* @author WHM**/
public class Product {private String food;private String drink;public String getFood() {return food;}public String getDrink() {return drink;}public void setFood(String food) {this.food = food;}public void setDrink(String drink) {this.drink = drink;}
}

2 产品扩展

 

public class MealA extends MealBuilder{@Overridepublic void buildFood() {pro.setFood("牛肉汉堡");}@Overridepublic void buildDrink() {pro.setDrink("可口可乐");}}
public class MealB extends MealBuilder{@Overridepublic void buildFood() {pro.setFood("鸡翅鸡腿");}@Overridepublic void buildDrink() {pro.setDrink("牛奶");}}

 3 抽象建造者,用于扩展

/*** 抽象建造者,用于扩展* @author WHM**/
public abstract class MealBuilder {Product pro = new Product();public abstract void buildFood();public abstract void buildDrink();public Product getProcdut() {return pro;}}

4 建造类

/*** 指挥生产套餐* * @author WHM**/
public class MealDirector {private MealBuilder mealBuilder;//传入构造器中public MealDirector(MealBuilder mealBuilder) {this.mealBuilder = mealBuilder;}public Product combine() {mealBuilder.buildDrink();mealBuilder.buildFood();return mealBuilder.getProcdut();}
}

 5 测试

package pattern.builder;/*** 1.建造者是对一个复杂对象的分解. 2.1抽象工厂模式实现对产品家族的创建:具有不同分类维度的产品组合;* 2.2它的主要目的是通过组装零配件而产生一个新产品 3.Product(产品角色):一个具体的产品对象(分解)。* Builder(抽象建造者):创建一个Product对象的各个分解部件指定的抽象接口。* ConcreteBuilder(具体建造者):实现抽象接口,构建和装配各个部件。 Director(指挥者):构建一个使用Builder接口的对象,松偶。* * 4.用户只需要传入我想生产的套餐,并不需要关心套餐生产过程* @author WHM**/
public class TMain {public static void main(String[] args) {// 套餐AMealA a = new MealA();// 准备套餐A的服务员MealDirector waiter = new MealDirector(a);// 获得套餐Product mealA = waiter.combine();System.out.print("套餐A的组成部分:");System.out.println("食物:" + mealA.getFood() + ";   " + "饮品:" + mealA.getDrink());}
}

 

引入

import lombok.Builder;

 

 

 获取对象就可以用builder,不在是new,如果10几个直接设置属性值就行。

 

http://www.ds6.com.cn/news/121853.html

相关文章:

  • 个人怎么做淘宝客网站吗网络营销软件网站
  • 有什么网站可以做扣扣头像网站怎么做外链
  • 桓台做网站下载微信
  • 美国服务器怎么搭建网站网络seo是什么意思
  • 建设银行大连招聘网站教育机构
  • 聊城网站建设制作开发公司现在推广一般都用什么软件
  • 为什么不用原来的网站做推广网站seo报价
  • 东莞单位网站建设新媒体运营岗位职责
  • 张戈博客wordpress主题seo权重查询
  • 有自己网站做淘宝客赚钱吗百度竞价软件哪个好
  • 交易网站怎么做b站推广网站2024年
  • wordpress底部链接修改论坛seo教程
  • 网站开发一月工资多少怎么给自己的公司做网站
  • 昆明网站建设价格低百度关键词热度查询工具
  • 海外网站推广方案短视频广告投放平台
  • 建设网站的必要性网络推广人员是干什么的
  • 部委网站建设管理职责中国国家培训网官网查询
  • wordpress编辑html企业网站推广优化公司
  • 网站制作一条龙百度搜索推广的五大优势
  • 做网站公奇闻司郑州汉狮网络推广技术外包
  • 谁做的怀来吧网站seo优化软件
  • 咋把网站制作成软件seo网站推广案例
  • 为什么凡科网做的网站无法搜索营销策划有限公司经营范围
  • 网站开发解决方案抖音seo怎么做
  • 网站上传的图片怎么做的清晰线下推广方式
  • 西安东郊网站建设seo优化的技巧
  • 帝国cms怎么做音乐网站哪里注册域名最便宜
  • 怎样做服装厂的企业网站模版教你如何快速建站
  • 网站测评必须做广州疫情最新消息
  • 做网站设计的需要什么材料企业网络搭建方案