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

一流的网站建设流程wordpress深度开发

一流的网站建设流程,wordpress深度开发,网站建设经理,wordpress申请目录 一、结构型模式 1.1、装饰者模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、结构型模式 1.1、装饰者模式 1.1.1、概念 装饰者模式就是指在不改变现有对象结构的情况下#xff0c;动态的给该对象增加一些职责#xff08;增加额外功能#…目录 一、结构型模式 1.1、装饰者模式 1.1.1、概念 1.1.2、案例实现 1.1.3、优缺点 1.1.4、使用场景 一、结构型模式 1.1、装饰者模式 1.1.1、概念 装饰者模式就是指在不改变现有对象结构的情况下动态的给该对象增加一些职责增加额外功能的模式. 例如现在要开发一个点餐系统有一个抽象类快餐类快餐店里有炒面、炒饭分别去继承实现.  如果现在需要添加额外的配料比如 鸡蛋那么计算额外加钱就会不叫麻烦就需要分别给 炒面类 和 炒饭类 定义一个子类鸡蛋炒面类、鸡蛋炒饭类.  再者如果要新增一个快餐类比如 凉皮就需要定义更多的子类.  通过装饰者模式就可以在不需要添加子类的情况下动态的添加配料. 装饰者模式中的角色如下 抽象构件角色定义一个抽象接口用来规范附加的对象比如上述的 快餐类.具体构件角色实现抽象构件将来会被添加一些职责比如上述的 炒面类 和 炒饭类.抽象装饰角色继承抽象构件 和 持有抽象构件的引用可以通过 子类 扩展具体的构件.具体装饰角色继承抽象装饰重写相关方法给具体的构件对象添加附加责任. 1.1.2、案例实现 实现上述案例. /*** 抽象构建角色: 快餐*/ public abstract class FastFood {private float price; //价格private String desc; //描述public abstract float cost(); //获取最终价格public FastFood() {}public FastFood(float price, String desc) {this.price price;this.desc desc;}public float getPrice() {return price;}public void setPrice(float price) {this.price price;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc desc;}}/*** 具体构建角色: 炒饭类*/ public class Rice extends FastFood{public Rice() {super(10, 炒饭);}Overridepublic float cost() {return getPrice();}}/*** 具体构建角色 面条类*/ public class Noodles extends FastFood {public Noodles() {super(12, 炒面);}Overridepublic float cost() {return getPrice();}}/*** 抽象装饰角色: 配料类*/ public abstract class Garnish extends FastFood {private FastFood fastFood;public FastFood getFastFood() {return fastFood;}public void setFastFood(FastFood fastFood) {this.fastFood fastFood;}public Garnish(FastFood fastFood, float price, String desc) {super(price, desc);this.fastFood fastFood;}}/*** 抽象装饰角色: 配料类*/ public abstract class Garnish extends FastFood {private FastFood fastFood;public FastFood getFastFood() {return fastFood;}public void setFastFood(FastFood fastFood) {this.fastFood fastFood;}public Garnish(FastFood fastFood, float price, String desc) {super(price, desc);this.fastFood fastFood;}}/*** 具体装饰角色: 鸡蛋配料*/ public class Egg extends Garnish{public Egg(FastFood fastFood) {super(fastFood, 1, 鸡蛋);}Overridepublic float cost() {return getPrice() getFastFood().cost();}Overridepublic String getDesc() {return super.getDesc() getFastFood().getDesc();}}/*** 具体装饰角色: 培根配料*/ public class Bacon extends Garnish{public Bacon(FastFood fastFood) {super(fastFood, 2, 培根);}Overridepublic float cost() {return getPrice() getFastFood().cost();}Overridepublic String getDesc() {return super.getDesc() getFastFood().getDesc();}}public class Client {public static void main(String[] args) {//1.带你一份炒饭FastFood food new Rice();System.out.println(food.getDesc() food.cost() 元);System.out.println();//2.加一份鸡蛋food new Egg(food);System.out.println(food.getDesc() food.cost() 元);System.out.println();//3.加一份鸡蛋food new Egg(food);System.out.println(food.getDesc() food.cost() 元);System.out.println();//4.加一个培根food new Bacon(food);System.out.println(food.getDesc() food.cost() 元);}}执行结果如下 1.1.3、优缺点 优点 动态扩展比继承具有更好的扩展性继承时静态附加责任装饰者时动态添加责任可以在不修改原类的情况下给对象添加责任. 缺点 增加系统复杂度装饰者比继承使用的类可能会少但比继承使用的对象可能更多更多的对象在程序排查错误的时候可能更复杂. 1.1.4、使用场景 1. 当不能采用继承的方式对程序进行扩展比如存在大量的独立扩展为了支持每一种组合产生大量子类例如上述栗子中的给 炒饭加鸡蛋导致出现 鸡蛋炒饭类导致子类数目爆炸增长、或者是 类定位为 final 类型不能继承. 2. 在不影响其他类的情况下以动态的方式添加责任.
http://www.dnsts.com.cn/news/21964.html

相关文章:

  • 织梦通用企业网站模板咸阳网站建设
  • 怎么查看网站虚拟空间辽宁建设工程信息网上开标流程
  • 找别人做网站的注意事项互联网最吃香的职业
  • 做平面那个网站素材好义乌外贸
  • 长沙做模板网站电商设计网站培训
  • 凡科网做的网站怎么样网站设计大全推荐
  • 10元网站备案深圳南山区网站建设公司
  • 网站开发PHP招聘大城网站优化
  • 公司网站制作费做无形资产网络规划与设计课程总结
  • 建设银行网站修改wordpress在本地安装
  • 怎么邀约客户做网站wordpress搜索被攻击
  • 绍兴集团网站建设免费搭建私人网站
  • 网站被k原因人力资源公司网站建设
  • 邢台移动网站建设google权重查询
  • 网站建站平台源码淄博免费网站建设
  • 网站推广的目的是什windows系统wordpress
  • 天猫商城网站风格专业做网站设计
  • 厦门网站建设高级课程wordpress註冊一定要郵箱嗎
  • 在线看mv视频网站入口软件下载wordpress变更域名插件
  • 微网站开发平台 知乎线上商城运营方案
  • 做淘宝客网站流量选择竹溪网站建设
  • 关于网站建设费用wordpress 舆情管理系统
  • 网站假设教程小米应用商店下载
  • 产品推广网站厦门做网站最好的公司
  • 四川建设厅网站鹤壁做网站哪家好
  • 直播视频网站如何做iis5.1怎么发布网站
  • 网站建设代理公司福州网站建设哪里有
  • 长春做网站用的软件本地手机网站建设
  • 做视频小网站犯法吗湖南长沙有哪些大学
  • 宿州微网站建设微网站制作提供商推荐