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

便宜建站空间大连网站搭建与推广

便宜建站空间,大连网站搭建与推广,什么网站是php,企业网页制作方面建造者模式 (将一个 复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。) 建造者模式是一种创建型的模式,有一些对象的创建过程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.yayakq.cn/news/134904/

相关文章:

  • 深圳公司网站建设服务为先地方门户网站建设多少钱
  • 中小企业网站建设公司首选公司企业注册信息查询
  • 平潭县机场建设网站金坛企业网站建设公司
  • 网站建设方案实验报告搜索引擎在哪里获取网站
  • 烟台建设银行网站排名好的网站建设
  • 网站界面设计专利做二手房网站
  • 极乐宝盒网站建设中文wordpress网站模板下载
  • 公司网站设计收费wordpress点击打印网页
  • 二手手机网站网页设计无法访问服务器上网站
  • 电商网站设计内容美食网站的建设论文
  • 德尔普的网站建设的价格女性时尚网站模板
  • 深圳建站科技有限公司西安免费平台网站建设
  • 做网站的公司有前途吗百姓网免费招聘信息
  • 东莞制作企业网站阿里巴巴运营技巧和方法
  • 做网站的研究生专业企业网站建设哪里做网站好
  • 公益组织网站源码做网站的点子
  • 怎样提高自己网站排名恒网做的网站
  • 竹子建站免费版百度极速版免费下载
  • 沂南建设局网站网站用户账号ip查询
  • 网站cc攻击用什么来做自己怎样给网站做推广
  • 可视化cmsseo的作用
  • 网站主要盈利模式深圳网站建房
  • 网站建设与维护流程外贸大楼
  • 网站平台设计团队百度搜索排名购买
  • 网站开发页面设计报价搜索排名影响因素
  • 潮州seo网站推广做网页设计一个月能挣多少
  • 格尔木网站建设公司制作网站软件手机
  • 安徽建站优化找外包公司做网站给源码吗
  • 产品展示网站建设做养殖推广什么网站好
  • 网络营销模式的建议免费的seo