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

网站建设需求调研计划表北京通网站建设价格低

网站建设需求调研计划表,北京通网站建设价格低,云南app开发系统,品牌建设对企业的意义装饰模式 装饰模式角色案例装饰模式与静态代理的区别 装饰模式 允许向一个现有的对象动态地添加新的功能#xff0c;同时不改变其结构。它是继承的一种替代方案#xff0c;可以动态地扩展对象。有点像静态代理 角色 装饰者模式有四种角色 抽象被装饰者#xff0c;被装饰者… 装饰模式 装饰模式角色案例装饰模式与静态代理的区别 装饰模式 允许向一个现有的对象动态地添加新的功能同时不改变其结构。它是继承的一种替代方案可以动态地扩展对象。有点像静态代理 角色 装饰者模式有四种角色 抽象被装饰者被装饰者装饰者和抽象被装饰者 抽象被装饰者一般是一个接口包含需要被装饰的方法被装饰者实现 抽象被装饰者 接口代表被装饰的原始对象。抽象装饰者继承或实现抽象被装饰者内部含有一个 抽象被装饰者的属性调用或增强 被装饰者的方法装饰者实现抽象装饰者的方法给被装饰对象增加具体的职责 案例 今天不开包子店想开一家奶茶店。产品有普通奶茶为了奶茶种类丰富需要支持添加多种小料椰果芋圆等且可以自由组合。 根据要求先建立起基础类 接口 Tea用来表示 抽象被装饰类MilkTea 用来表示 被装饰类 /*** 抽象被装饰者**/ public interface Tea {String getName();int getPrice(); }/*** 被装饰者奶茶**/ public class MilkTea implements Tea{Overridepublic String getName() {return 奶茶;}Overridepublic int getPrice() {return 10;} }分析下问题想要支持可以自由组合的方式来 增强奶茶类普通的继承和组合 很难实现。所以才使用装饰者模式 下面是装饰者的代码 /*** 抽象装饰者奶茶小料**/ public abstract class AbsDecoratorIngredients implements Tea{final private Tea tea;public AbsDecoratorIngredients(Tea tea) {this.tea tea;}Overridepublic int getPrice() {//执行目标对象原本的行为return tea.getPrice();}Overridepublic String getName() {//执行目标对象原本的行为return tea.getName();} } /*** 装饰者椰果**/ public class DecoratorCoconut extends AbsDecoratorIngredients{public DecoratorCoconut(Tea tea) {super(tea);}Overridepublic int getPrice() {/*被装饰者的价格 当前椰果的价格*/return super.getPrice() 2;}Overridepublic String getName() {return super.getName() 椰果;} }/*** 装饰者芋圆**/ public class DecoratorTaroBall extends AbsDecoratorIngredients{public DecoratorTaroBall(Tea tea) {super(tea);}Overridepublic int getPrice() {/*被装饰者的价格 当前椰果的价格*/return super.getPrice() 2;}Overridepublic String getName() {return super.getName() 椰果;} }测试代码 public class DecoratorTest {public static void main(String[] args) {/*给我一杯奶茶*/System.out.println(给我一杯奶茶);Tea milkTea new MilkTea();System.out.println(milkTea.getName() milkTea.getPrice());/*给我一杯珍珠奶茶*/System.out.println(给我一杯珍珠奶茶);milkTea new DecoratorTaroBall(milkTea);System.out.println(milkTea.getName() milkTea.getPrice());/*给我一杯珍珠椰果奶茶*/System.out.println(给我一杯珍珠椰果奶茶);milkTea new DecoratorCoconut(milkTea);System.out.println(milkTea.getName() milkTea.getPrice());} }输出 给我一杯奶茶 奶茶 10 给我一杯珍珠奶茶 奶茶 椰果 12 给我一杯珍珠椰果奶茶 奶茶 椰果 椰果 14看到这里可能有人发现 抽象装饰者类 好像可以省略。 是的这个例子是可以省略的 这里只是写的 装饰者模式的标准写法。使用一个抽象装饰者 是为了 将 抽象被装饰者 和 装饰者 解耦。 一旦把 抽象装饰者省略大家可能发现这个写法是不是很眼熟是不是很像 静态代理。 其实 设计模式 就是这样23种设计模式只是应对不同的场景不同的设计模式总会有相似之处。 设计模式来源于设计原则万变不离其宗稍微变换下就是另一种设计模式。 下面看下 装饰和静态代理的区别 装饰模式与静态代理的区别 装饰模式目标对象由外界传入目的是为了增强该对象 静态代理目标对象由内部生成目的是隐藏和保护该对象 装饰模式一般会迭代传入不同的对象一步一步的增强方法 静态代理一般只传入一个对象只调用一层
http://www.dnsts.com.cn/news/161546.html

相关文章:

  • 一个网站空间可以做多少个网站html视频教学
  • 网站建设从初级到精通app定制网站建设应有尽有
  • 硬件开发公司seo推广服务
  • 可以做网站素材的服装长沙 做营销型网站的公司
  • 常州模板建站代理十大品牌营销策划公司
  • 中国十大私企热门seo推广排名稳定
  • 医院网站和微信公众号建设方案免费域名网站的
  • 泉州 网站建设公司首选网站营销理念
  • 甘肃省临夏州建设局网站中小企业怎么优化网站
  • 阿里巴巴做网站联系人网站升级需要什么
  • 中国银行网站建设网站制作 网站建设怎么做的
  • 做网站做论坛赚钱吗甘肃兰州邮编
  • 行业协会网站建设方案书怎么做html5网站
  • 花溪建设村镇银行官方网站百度网站站长工具
  • 网站百度抓取潍坊网站建设解决方案
  • 淄博网站建设电话咨询搜索优化的培训免费咨询
  • 北京各大网站推广服务公司wordpress二次开发教程
  • 做网站建设电话销售外贸网站如何做推广苏州
  • 民宿行业网站建设方案做seo 教你如何选择网站关键词
  • 郑州网站搜索排名南宁做网站的有几家
  • 申请一个网站得多钱软件编程工具
  • 做业精灵官方网站平面设计素材图
  • 建设一个完整网站技术路线吉安网站建设
  • 网站国际化建设方案typo3 wordpress
  • 公司官方网站建设费计入什么科目无代码开发
  • 三星单片机开发网站沭阳各乡镇做网站
  • 牛商网站建设定制专业网站
  • 免费行情软件app网站大全下载免费网络服务提供商的英文缩写是什么
  • 网站 app 哪个先做婚纱网站有哪些
  • 服装网站的建设与管理WordPress页面固定链接