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

福州网站推广定制做网站最下面写什么

福州网站推广定制,做网站最下面写什么,麻将软件开发平台,网站首页需求建造者模式 摘要实现范例 建造者模式#xff08;Builder Pattern#xff09;使用多个简单的对象一步一步构建成一个复杂的对象 一个Builder 类会一步一步构造最终的对象#xff0c;该 Builder 类是独立于其他对象的 建造者模式属于创建型模式#xff0c;它提供了一种创建对… 建造者模式 摘要实现范例 建造者模式Builder Pattern使用多个简单的对象一步一步构建成一个复杂的对象 一个Builder 类会一步一步构造最终的对象该 Builder 类是独立于其他对象的 建造者模式属于创建型模式它提供了一种创建对象的最佳方式。 摘要 1. 意图 将一个复杂的构建与其表示相分离使得同样的构建过程可以创建不同的表示2. 主要解决 主要解决在软件系统中有时候面临着”一个复杂对象”的创建工作其通常由各个部分的子对象用一定的算法构成由于需求的变化这个复杂对象的各个部分经常面临着剧烈的变化但是将它们组合在一起的算法却相对稳定3. 何时使用 一些基本部件不会变而其组合经常变化的时候4. 如何解决 将变与不变分离开5. 关键代码 建造者创建和提供实例导演管理建造出来的实例的依赖关系 6. 应用实例 去肯德基汉堡、可乐、薯条、炸鸡翅等是不变的而其组合是经常变化的生成出所谓的”套餐”JAVA中的StringBuilder 7. 优点 建造者独立易扩展便于控制细节风险 8. 缺点 产品必须有共同点范围有限制如内部变化复杂会有很多的建造类 9. 使用场景 需要生成的对象具有复杂的内部结构需要生成的对象内部属性本身相互依赖 10. 注意事项 与工厂模式的区别是建造者模式更加关注与零件装配的顺序 实现 我们以一家快餐店为例 一个典型的套餐可以是一个汉堡Burger和一杯冷饮Cold drink 汉堡Burger可以是素食汉堡Veg Burger或鸡肉汉堡Chicken Burger它们是包在纸盒中 冷饮Cold drink可以是可口可乐coke或百事可乐pepsi它们是装在瓶子中 创建一个表示食物条目比如汉堡和冷饮的 Item 接口和实现 Item 接口的实体类 以及一个表示食物包装的 Packing 接口和实现 Packing 接口的实体类汉堡是包在纸盒中冷饮是装在瓶子中 然后创建一个Meal类带有 Item 的 ArrayList 和一个通过结合 Item 来创建不同类型的 Meal 对象的 MealBuilder 最后使用 MealBuilder 来创建一个 Meal 范例 1. 创建一个表示食物条目和食物包装的接口. Item.java package com.demo.gof; public interface Item {public String name();public Packing packing();public float price(); }Packing.java package com.demo.gof; public interface Packing {public String pack(); }2. 创建实现 Packing 接口的实体类 Wrapper.java package com.demo.gof; public class Wrapper implements Packing {Overridepublic String pack() {return Wrapper;} }Bottle.java package com.demo.gof; public class Bottle implements Packing {Overridepublic String pack() {return Bottle;} }3. 创建实现 Item 接口的抽象类该类提供了默认的功能 Burger.java package com.demo.gof; public abstract class Burger implements Item {Overridepublic Packing packing() {return new Wrapper();}Overridepublic abstract float price(); } ColdDrink.java package com.demo.gof; public abstract class ColdDrink implements Item {Overridepublic Packing packing() {return new Bottle();}Overridepublic abstract float price(); }4. 创建扩展了 Burger 和 ColdDrink 的实体类 VegBurger.java package com.demo.gof; public class VegBurger extends Burger {Overridepublic float price() {return 25.0f;}Overridepublic String name() {return Veg Burger;} }ChickenBurger.java package com.demo.gof; public class ChickenBurger extends Burger {Overridepublic float price() {return 50.5f;}Overridepublic String name() {return Chicken Burger;} }Coke.java package com.demo.gof; public class Coke extends ColdDrink {Overridepublic float price() {return 30.0f;}Overridepublic String name() {return Coke;} }Pepsi.java package com.demo.gof; public class Pepsi extends ColdDrink {Overridepublic float price() {return 35.0f;}Overridepublic String name() {return Pepsi;} }5. 创建一个 Meal 类带有上面定义的 Item 对象 Meal.java package com.demo.gof; import java.util.ArrayList; import java.util.List;public class Meal {private ListItem items new ArrayListItem(); public void addItem(Item item){items.add(item);}public float getCost(){float cost 0.0f;for (Item item : items) {cost item.price();} return cost;}public void showItems(){for (Item item : items) {System.out.print(Item : item.name());System.out.print(, Packing : item.packing().pack());System.out.println(, Price : item.price());} } }6. 创建一个 MealBuilder 类实际的 builder 类负责创建 Meal 对象 MealBuilder package com.demo.gof; public class MealBuilder {public Meal prepareVegMeal (){Meal meal new Meal();meal.addItem(new VegBurger());meal.addItem(new Coke());return meal;} public Meal prepareNonVegMeal (){Meal meal new Meal();meal.addItem(new ChickenBurger());meal.addItem(new Pepsi());return meal;} }7. BuiderPatternDemo 使用 MealBuider 来演示建造者模式Builder Pattern BuilderPatternDemo.java package com.demo.gof; public class BuilderPatternDemo {public static void main(String[] args) {MealBuilder mealBuilder new MealBuilder();Meal vegMeal mealBuilder.prepareVegMeal();System.out.println(Veg Meal);vegMeal.showItems();System.out.println(Total Cost: vegMeal.getCost());Meal nonVegMeal mealBuilder.prepareNonVegMeal();System.out.println(\n\nNon-Veg Meal);nonVegMeal.showItems();System.out.println(Total Cost: nonVegMeal.getCost());} }编译运行以上 Java 范例输出结果如下 $ javac -d . src/main/com.demo/gof/BuilderPatternDemo.java $ java com.demo.gof.BuilderPatternDemo Veg Meal Item : Veg Burger, Packing : Wrapper, Price : 25.0 Item : Coke, Packing : Bottle, Price : 30.0 Total Cost: 55.0 Non-Veg Meal Item : Chicken Burger, Packing : Wrapper, Price : 50.5 Item : Pepsi, Packing : Bottle, Price : 35.0 Total Cost: 85.5
http://www.zqtcl.cn/news/242801/

相关文章:

  • 长沙专业外贸建站公司百度提交网站入口网站
  • 西安网站搭建建设定制市场营销推广策略
  • 用户等待网站速度公司网站怎么做站外链接
  • 设计新闻发布网站模板wonder audio wordpress
  • 教育与培训网站建设wordpress侧栏文章
  • 四川做网站的公司哪家好信誉好的赣州网站建设
  • seo外包网站网站的备案流程图
  • 学网站建设好么免费网页制作有哪些
  • 宁波公司网站开发招聘最便宜的视频网站建设
  • 找人做网站大概多少钱永州企业网站建设
  • 免费备案网站空间网站怎么做组织图
  • 四川省和城乡建设厅网站怎么做网站淘宝转换工具
  • 网站单页支付宝支付怎么做的排名优化公司口碑哪家好
  • 淄博网站制作服务推广做网站服务器配置
  • ppt做的好的有哪些网站有哪些广州品牌型网站建设
  • 怎么学做一件完整衣服网站网站 相对路径
  • 十大wordpress主题江门seo排名优化
  • 石家庄网站搭建定制在百度上如何上传自己的网站
  • 南宁建设厅官方网站福州中小企业网站制作
  • 模板网站建设平台昆山专业网站建设公司哪家好
  • 百度指数的数值代表什么网站建设优化的作用
  • 河南便宜网站建设价格wordpress页面图片插件
  • 网站生成wordwordpress汽车主题公园
  • 网络营销成功的案例及其原因湖南网站seo地址
  • 潍坊企业网站模板绩效考核表 网站建设
  • 建设企业网站公做深度游网站 知乎
  • 可以做h5的网站韶关网站建设制作
  • 企业网站建设的基本要素有哪些通知模板范文
  • 网站建设计划书范本住房和城乡建设部网站事故快报
  • 西安网站建设公司排家居用品东莞网站建设