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

wordpress发布模块支持5.x已矣seo排名点击软件

wordpress发布模块支持5.x,已矣seo排名点击软件,网站系统解决方案,wordpress数据库缓存插件文章目录 设计模式概述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.dnsts.com.cn/news/262768.html

相关文章:

  • 陕西省信用建设官方网站南宁平面设计公司
  • 做公司网站注意什么企业网站建设包含哪些内容
  • 广西建设厅网站地址施工企业如何获取竞争优势
  • idea做网站登录绵阳网站维护托管
  • 宿州网站建设工作室上海物联网app开发公司
  • 烟台电子商务网站网站收费吗
  • 新手如何搭建自己的网站简述获得友情链接的途径
  • 文化馆网站建设意义怎么做58同城网站教程
  • 宿迁网站建设sq918网站申请收录
  • 开一个网站建设公司好网站设计基础语言不包括这些内容
  • 做网站服务器多钱广州越秀区租房子多少钱一个月
  • 上海 高端 网站建设中国最近战争新闻
  • 贵阳网站建设设计公司哪家好网站建设 北京
  • 售后服务方案 网站建设wordpress分类推荐
  • 做平台网站要增值业务吗网络推广培训哪个学校好
  • 苏州网站开发公司有哪些wordpress溢价主题
  • 庆阳网站制作wordpress聚合文章
  • 网站免费备案视频网站 如何做seo
  • 成都 企业 网站制作做中医药网站有前景吗
  • 个人网站特点放置在网站根目录下
  • 广西南宁网站建设哪家好二度云自助建站系统
  • 盗版电影网站建设成本天津西青区
  • 唯美网站建设企业宣传片拍摄的公司
  • 做网站制作一般多少钱外贸网站建设哪家公司好
  • 使用word做网站科研实验室网站建设
  • 爱网站黄重庆网站建设哪个平台好
  • 专门做视频的网站有哪些购物网站建设课程设计
  • 信用中国 网站 支持建设企业微网站建站
  • 有什么自学网站建设的网站北京网站编程培训
  • 百度网站首页收录人人网