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

软件外包业务seo网站推广招聘

软件外包业务,seo网站推广招聘,宁波建设工程信息网,全国被执行人名单查询装饰者模式(Decorator) 定义 1、动态的将新功能附加到对象上,在对象功能扩展方面,他比继承更有弹性,也体现了开闭原则(OCP) 2、这里提到的动态的将新功能附加到对象和OCP原则,在后面应用实际上会以代码的形式体现。 //饮料 // 饮…

装饰者模式(Decorator)

在这里插入图片描述

定义
1、动态的将新功能附加到对象上,在对象功能扩展方面,他比继承更有弹性,也体现了开闭原则(OCP)
2、这里提到的动态的将新功能附加到对象和OCP原则,在后面应用实际上会以代码的形式体现。

//=====================饮料========================
// 饮料
@Data
public abstract class Drink {//描述public  String description;//价格private float price=0.0f;//计算费用的抽象方法//子类去实现public abstract float cost();
}
public class Coffee extends Drink {@Overridepublic float cost() {return super.getPrice();}
}
public class EspressoCoffer extends Coffee {public EspressoCoffer() {setDescription("意大利咖啡");setPrice(6.0f);}
}
public class LongBlackCoffer extends Coffee {public LongBlackCoffer() {setDescription("美式咖啡");setPrice(5.0f);}
}
public class DecafCoffee extends Coffee {public DecafCoffee() {setDescription(" 无因咖啡 ");setPrice(1.0f);}
}
public class ShortBlackCoffer extends Coffee {public ShortBlackCoffer() {setDescription(" short Black coffer");setPrice(5.6f);}
}
//===================装饰者类==========================/*** 装饰者** @author Administrator* @description*/
public class Decorator extends Drink {private Drink obj;//组合public Decorator(Drink obj) {this.obj = obj;}@Overridepublic float cost() {//自己的价格 + drink的价格return super.getPrice() + obj.cost();}@Overridepublic String getDescription() {//输出了被装饰者的信息return super.description + "" + super.getPrice() + " && " + obj.getDescription();}
}
//巧克力
public class ChocolateDecorator extends Decorator {public ChocolateDecorator(Drink obj) {super(obj);setDescription(" 巧克力 ");//调味品的价格setPrice(3.0f);}
}
//牛奶调味品
public class MilkDecorator extends Decorator {public MilkDecorator(Drink obj) {super(obj);setDescription(" 牛奶 ");setPrice(2.0f);}
}
//豆浆
public class SoyDecorator extends Decorator {public SoyDecorator(Drink obj) {super(obj);setDescription(" 豆浆 ");setPrice(1.5f);}
}
//====================调用=============================
@Slf4j
public class CofferBarClient {public static void main(String[] args) {//装饰者模式下的订单:2份巧克力+一份牛奶的LongBlack//1、点一份LongBlackDrink order=new LongBlackCoffer();log.info("费用1:{}",order.cost());log.info("描述1:{}",order.getDescription());//order加一分牛奶order=new MilkDecorator(order);log.info("费用1:{}",order.cost());log.info("描述1:{}",order.getDescription());//order 加一分巧克力order=new ChocolateDecorator(order);log.info("费用1:{}",order.cost());log.info("描述1:{}",order.getDescription());//order 加一分巧克力order=new ChocolateDecorator(order);log.info("费用1:{}",order.cost());log.info("描述1:{}",order.getDescription());log.info("=======================================");Drink order2=new DecafCoffee();log.info("费用2:{}",order2.cost());log.info("描述2:{}",order2.getDescription());order2=new ChocolateDecorator(order2);log.info("费用2:加入一份巧克力{}",order2.cost());log.info("描述2:加入一份巧克力{}",order2.getDescription());}
}
  • 输出信息
描述1:美式咖啡
费用1:7.0
描述1: 牛奶 2.0 && 美式咖啡
费用1:10.0
描述1: 巧克力 3.0 &&  牛奶 2.0 && 美式咖啡
费用1:13.0
描述1: 巧克力 3.0 &&  巧克力 3.0 &&  牛奶 2.0 && 美式咖啡
=======================================
费用2:1.0
描述2: 无因咖啡 
费用2:加入一份巧克力4.0
描述2:加入一份巧克力 巧克力 3.0 &&  无因咖啡 

源码中的使用(InputStream)
在这里插入图片描述

public abstract class InputStream implements Closeable{}//是一个抽象类,即Component
public class FilterInputStream extends InputStream{//是一个装饰者类Decoratorprotected volatile InputStream in //被装饰的对象 }
class DataInputStream extends FilterInputStream implements DataInput{//FilterInputStream子类,
http://www.dtcms.com/wzjs/481186.html

相关文章:

  • 南通网站建设 南大街网站排名优化培训
  • ssl正式申请后wordpress网站优化推广平台
  • 可以做go分析的网站网络推广seo
  • 河北营销型网站建设做网站推广好做吗
  • apache做网站推广哪个平台好
  • 武汉专业网站做网页抖音关键词优化排名靠前
  • 免费网站app下载汅apiseo需要掌握哪些技术
  • html5网站开发的源码seo软件服务
  • 靠谱的建站公司普通话手抄报简单又漂亮
  • 佛山网站建设多少钱域名地址查询
  • C语言网站开发pdf企业官网怎么做
  • 网站建设对公司的发展互联网广告平台排名
  • 建设公司网站靠谱吗西安整站优化
  • 做设计常用的网站网站建设优化推广系统
  • 企业建设网站有什么好处百度推广个人能开户吗
  • 橙子建站官网价格优化网站标题
  • 做网站 用什么语言网站制作开发
  • 做网站被骗首付款怎么报案小熊代刷推广网站
  • 秦皇岛房管局官网seo排名优化哪家好
  • 南宁网站制作工具大数据统计网站
  • 虚拟网站官网小程序开发费用明细
  • 江苏专业网站建设费用北京网站推广营销策划
  • wordpress 的子主题医疗网站优化公司
  • 给网站做推广一般花多少钱百度seo推广价格
  • 做淘宝优惠劵网站服务器配置郑州网站公司哪家好
  • 商城网站建设注意什么广告设计
  • 深圳工装设计正版搜索引擎优化
  • 东莞市手机网站建设品牌浏览器下载安装2023版本
  • flash网站开发工具旺道seo优化软件
  • 网站建设报价单格式泉州seo优化