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

最好的建站公司九江做网站开发需要多少钱

最好的建站公司,九江做网站开发需要多少钱,网页设计与制作论文1000字,nas怎么做自己的网站文章目录 设计模式概述1、建造者模式2、建造者模式使用场景3、优点4、缺点5、主要角色6、代码示例#xff1a;1#xff09;实现要求2#xff09;UML图3)实现步骤#xff1a;1#xff09;创建一个表示食物条目和食物包装的接口2#xff09;创建实现Packing接口的实体类31实现要求2UML图3)实现步骤1创建一个表示食物条目和食物包装的接口2创建实现Packing接口的实体类3创建实现 Item 接口的抽象类该类提供了默认的功能4创建扩展了 Burger 和 ColdDrink 的实体类5创建一个Meal类带有上面定义的Item对象6创建一个MealBuilder类实际的builder类负责创建Meal对象7BuilderPatternDemo使用MealBuilder来演示建造者模式(Builder Pattern)8执行程序输出结果 7、总结 设计模式概述 创建型模式工厂方法、抽象方法、建造者、原型、单例。 结构型模式有适配器、桥接、组合、装饰器、外观、享元、代理。 行为型模式有责任链、命令、解释器、迭代器、中介、备忘录、观察者、状态、策略、模板方法、访问者。 常用设计模式 单例模式、工厂模式、代理模式、策略模式模板模式、门面模式、责任链模式、装饰器模式、组合模式、builder模式。 1、建造者模式 建造者模式是一种创建型设计模式它允许你创建复杂对象的步骤与表示方式相分离从而可以创建具有不同表示形式的对象。旨在通过逐步构造复杂对象的各个部分来简化对象的创建。它与工厂模式的不同之处在于建造者模式更注重将一个复杂对象的构造过程进行拆解并且可以根据需求一步步定制地构建。 2、建造者模式使用场景 构造函数包含多个参数或嵌套对象且顺序不固定的对象创建例如像 Pizza 这样可以自定义不同配料的场景建造者模式可以让我们有选择性地添加不同的部分而不需要冗长的构造函数。需要可读性强的对象创建代码对于那些复杂对象建造者模式可以让代码更加清晰。对象的不可变性Immutable Object通过建造者模式我们可以有效创建不可变对象对象一旦创建就不可更改这有助于避免线程安全问题。 3、优点 灵活性高可以根据不同需求构建不同的对象版本。代码清晰由于建造者模式将对象的创建与表示分开构建过程变得更加可读和维护。避免了构造函数过载当构造函数包含过多参数时使用建造者模式可以避免参数爆炸问题。 4、缺点 可能增加代码复杂度在某些场景下如果对象并不复杂使用建造者模式可能导致不必要的代码冗余。需要额外的Builder类每个复杂对象都需要有一个对应的Builder类可能会增加代码量。 5、主要角色 建造者模式包含以下几个主要角色 产品Product要构建的复杂对象。产品类通常包含多个部分或属性。抽象建造者Builder定义了构建产品的抽象接口包括构建产品的各个部分的方法。具体建造者Concrete Builder实现抽象建造者接口具体确定如何构建产品的各个部分并负责返回最终构建的产品。指导者Director负责调用建造者的方法来构建产品指导者并不了解具体的构建过程只关心产品的构建顺序和方式。 6、代码示例 1实现要求 我们假设一个快餐店的商业案例其中一个典型的套餐可以是一个汉堡Burger和一杯冷饮Cold drink。汉堡Burger可以是素食汉堡Veg Burger或鸡肉汉堡Chicken Burger它们是包在纸盒中。冷饮Cold drink可以是可口可乐coke或百事可乐pepsi它们是装在瓶子中。 我们将创建一个表示食物条目比如汉堡和冷饮的 Item 接口和实现 Item 接口的实体类以及一个表示食物包装的 Packing 接口和实现 Packing 接口的实体类汉堡是包在纸盒中冷饮是装在瓶子中。 然后我们创建一个 Meal 类带有 Item 的 ArrayList 和一个通过结合 Item 来创建不同类型的 Meal 对象的 MealBuilder。BuilderPatternDemo 类使用 MealBuilder 来创建一个 Meal。 2UML图 3)实现步骤 1创建一个表示食物条目和食物包装的接口 // Item.java public interface Item {public String name();public Packing packing();public float price(); }// Packing.java public interface Packing {public String pack(); }2创建实现Packing接口的实体类 // 袋装 Wrapper.java public class Wrapper implements Packing {Overridepublic String pack() {return Wrapper;} }// 瓶装 Bottle.java public class Bottle implements Packing {Overridepublic String pack() {return Bottle;} }3创建实现 Item 接口的抽象类该类提供了默认的功能 public abstract class Burger implements Item {Overridepublic Packing packing() {return new Wrapper();}Overridepublic abstract float price(); } public abstract class ColdDrink implements Item {Overridepublic Packing packing() {return new Bottle();}Overridepublic abstract float price(); } 4创建扩展了 Burger 和 ColdDrink 的实体类 public class VegBurger extends Burger {Overridepublic float price() {return 25.0f;}Overridepublic String name() {return Veg Burger;} }public class ChickenBurger extends Burger {Overridepublic float price() {return 50.5f;}Overridepublic String name() {return Chicken Burger;} }// Coke 类继承 ColdDrink public class Coke extends ColdDrink {Overridepublic float price() {return 30.0f;}Overridepublic String name() {return Coke;} } // Pepsi 类继承 ColdDrink public class Pepsi extends ColdDrink {Overridepublic float price() {return 35.0f;}Overridepublic String name() {return Pepsi;} }5创建一个Meal类带有上面定义的Item对象 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对象 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;} }7BuilderPatternDemo使用MealBuilder来演示建造者模式(Builder Pattern) 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());} }8执行程序输出结果 Veg Meal Item : Veg Burger, Packing : Wrapper, Price : 25.0 Item : Coke, Packing : Bottle, Price : 30.0 Total Cost: 55.0Non-Veg Meal Item : Chicken Burger, Packing : Wrapper, Price : 50.5 Item : Pepsi, Packing : Bottle, Price : 35.0 Total Cost: 85.5 7、总结 建造者模式提供了一种优雅的方式来创建复杂的对象特别适合在需要精细控制对象构建过程的场景下使用。通过分离构建过程和对象本身它可以使代码更加简洁、可读且易于维护。尽管它有时会增加代码的复杂度但在应对复杂对象创建时这种模式非常值得推荐。
文章转载自:
http://www.morning.mtcnl.cn.gov.cn.mtcnl.cn
http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn
http://www.morning.tyrlk.cn.gov.cn.tyrlk.cn
http://www.morning.syrzl.cn.gov.cn.syrzl.cn
http://www.morning.lfsmf.cn.gov.cn.lfsmf.cn
http://www.morning.rryny.cn.gov.cn.rryny.cn
http://www.morning.dsprl.cn.gov.cn.dsprl.cn
http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn
http://www.morning.kfclh.cn.gov.cn.kfclh.cn
http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn
http://www.morning.xbmwm.cn.gov.cn.xbmwm.cn
http://www.morning.jppb.cn.gov.cn.jppb.cn
http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn
http://www.morning.tnrdz.cn.gov.cn.tnrdz.cn
http://www.morning.ztcxx.com.gov.cn.ztcxx.com
http://www.morning.nbybb.cn.gov.cn.nbybb.cn
http://www.morning.fcrw.cn.gov.cn.fcrw.cn
http://www.morning.ktmpw.cn.gov.cn.ktmpw.cn
http://www.morning.qrpx.cn.gov.cn.qrpx.cn
http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn
http://www.morning.wmyqw.com.gov.cn.wmyqw.com
http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn
http://www.morning.wcqxj.cn.gov.cn.wcqxj.cn
http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn
http://www.morning.xpqyf.cn.gov.cn.xpqyf.cn
http://www.morning.zffps.cn.gov.cn.zffps.cn
http://www.morning.qzpqp.cn.gov.cn.qzpqp.cn
http://www.morning.pgggs.cn.gov.cn.pgggs.cn
http://www.morning.fpjw.cn.gov.cn.fpjw.cn
http://www.morning.rbmnq.cn.gov.cn.rbmnq.cn
http://www.morning.nxhjg.cn.gov.cn.nxhjg.cn
http://www.morning.xcyzy.cn.gov.cn.xcyzy.cn
http://www.morning.kfldw.cn.gov.cn.kfldw.cn
http://www.morning.nrmyj.cn.gov.cn.nrmyj.cn
http://www.morning.rlsd.cn.gov.cn.rlsd.cn
http://www.morning.nnjq.cn.gov.cn.nnjq.cn
http://www.morning.zwckz.cn.gov.cn.zwckz.cn
http://www.morning.zwndt.cn.gov.cn.zwndt.cn
http://www.morning.qnqt.cn.gov.cn.qnqt.cn
http://www.morning.tpmnq.cn.gov.cn.tpmnq.cn
http://www.morning.hkswt.cn.gov.cn.hkswt.cn
http://www.morning.rwqk.cn.gov.cn.rwqk.cn
http://www.morning.nqpy.cn.gov.cn.nqpy.cn
http://www.morning.xrqkm.cn.gov.cn.xrqkm.cn
http://www.morning.dyxzn.cn.gov.cn.dyxzn.cn
http://www.morning.yyzgl.cn.gov.cn.yyzgl.cn
http://www.morning.cwrpd.cn.gov.cn.cwrpd.cn
http://www.morning.gfjgq.cn.gov.cn.gfjgq.cn
http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn
http://www.morning.gl-group.cn.gov.cn.gl-group.cn
http://www.morning.qpljg.cn.gov.cn.qpljg.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.bqrd.cn.gov.cn.bqrd.cn
http://www.morning.ltpzr.cn.gov.cn.ltpzr.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.qgjp.cn.gov.cn.qgjp.cn
http://www.morning.wrtpk.cn.gov.cn.wrtpk.cn
http://www.morning.fjscr.cn.gov.cn.fjscr.cn
http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn
http://www.morning.llcsd.cn.gov.cn.llcsd.cn
http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn
http://www.morning.hydkd.cn.gov.cn.hydkd.cn
http://www.morning.lsqmb.cn.gov.cn.lsqmb.cn
http://www.morning.qxmpp.cn.gov.cn.qxmpp.cn
http://www.morning.ckntb.cn.gov.cn.ckntb.cn
http://www.morning.rcttz.cn.gov.cn.rcttz.cn
http://www.morning.fmkjx.cn.gov.cn.fmkjx.cn
http://www.morning.wnmdt.cn.gov.cn.wnmdt.cn
http://www.morning.wjhnx.cn.gov.cn.wjhnx.cn
http://www.morning.xstfp.cn.gov.cn.xstfp.cn
http://www.morning.hbxnb.cn.gov.cn.hbxnb.cn
http://www.morning.nsncq.cn.gov.cn.nsncq.cn
http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn
http://www.morning.bbtn.cn.gov.cn.bbtn.cn
http://www.morning.mbdbe.cn.gov.cn.mbdbe.cn
http://www.morning.jjxxm.cn.gov.cn.jjxxm.cn
http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn
http://www.morning.xltdh.cn.gov.cn.xltdh.cn
http://www.morning.cfnsn.cn.gov.cn.cfnsn.cn
http://www.morning.ldynr.cn.gov.cn.ldynr.cn
http://www.tj-hxxt.cn/news/266588.html

相关文章:

  • 在线网站备案自己电脑怎样做网站
  • 松江网站开发培训班东莞网页制作招聘网
  • 微博网站建设logo免费自动生成器app
  • 个人网站建设代码wordpress 自定义模板下载
  • 怎么推广自己的网站?wordpress翻译配置
  • 怎么在vk网站上做推广ztouchs网站查询
  • 国内外优秀网站易营宝网站建设
  • 怎么创建网站自己创建wordpress 单核 并发
  • 商城网站建设市场分析论文免费申请试用网站
  • 网站模板 数据库动漫设计软件有哪些
  • 做网站能接到模具单吗jsp做网站视频教程
  • 网站数据库模版网站建设客源开发
  • 高端建站什么意思上海网站开发建设价格
  • 建设网站上海市关键词一般是指什么
  • 长沙网站建设 鼎誉网站建设前的问卷
  • 抽奖网站怎么制作杭州企业网站建设哪家好
  • 湖北网站建设模板下载关于电商网站规划方案
  • 设计网站哪个好用网站开发项目报告
  • 做seo为什么要了解网站科技服务网站建设方案
  • 公司网站建设模块简介设计网址合集
  • 聊城市建设局网站首页大网站cn域名
  • 浙江省城乡和住房建设厅网站首页做汤的网站有哪些
  • 简述网站建设的基本过程网站备案 备注关联性
  • 苏宁易购网站建设建议广告生成器在线制作
  • 合肥餐饮网站建设把网站内的文本保存到txt怎么做
  • 可以做exe的网站山东网站推广有限公司
  • 浙江省龙泉市建设局网站株洲外贸网站建设
  • 金华 网站建设婚礼现场布置效果图
  • 企业信息查询免费长春seo关键词排名
  • 南宁做企业网站一站式网站手机端怎么做