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

企业网站制作的书seo网站推广公司

企业网站制作的书,seo网站推广公司,建设卒中中心几个网站,网站建设兴田德润Java 装饰器模式(Decorator Pattern)详解 🎁 什么是装饰器模式? 装饰器模式是一种结构型设计模式,允许向一个对象动态添加新的功能,而不改变其结构。 🧱 你可以想象成在原有功能上“包裹”一…

Java 装饰器模式(Decorator Pattern)详解

🎁 什么是装饰器模式?

装饰器模式是一种结构型设计模式,允许向一个对象动态添加新的功能,而不改变其结构。

🧱 你可以想象成在原有功能上“包裹”一层新功能,就像“套娃”或者“包礼物”。


🧠 使用场景

  • 需要在不修改类的情况下,扩展其功能
  • 需要动态地为对象添加功能
  • 多个类只有少量差异时,使用继承会导致类爆炸

🏗️ 模式结构

  • Component(抽象构件):定义对象接口
  • ConcreteComponent(具体构件):被装饰的原始对象
  • Decorator(装饰器抽象类):持有组件对象的引用,扩展功能
  • ConcreteDecorator(具体装饰器):实现具体增强功能

✅ 示例:咖啡加配料

抽象组件

public interface Coffee {String getDescription();double cost();
}

具体组件

public class SimpleCoffee implements Coffee {@Overridepublic String getDescription() {return "普通咖啡";}@Overridepublic double cost() {return 5.0;}
}

抽象装饰器

public abstract class CoffeeDecorator implements Coffee {protected Coffee decoratedCoffee;public CoffeeDecorator(Coffee coffee) {this.decoratedCoffee = coffee;}@Overridepublic String getDescription() {return decoratedCoffee.getDescription();}@Overridepublic double cost() {return decoratedCoffee.cost();}
}

具体装饰器:加牛奶

public class MilkDecorator extends CoffeeDecorator {public MilkDecorator(Coffee coffee) {super(coffee);}@Overridepublic String getDescription() {return super.getDescription() + " + 牛奶";}@Overridepublic double cost() {return super.cost() + 2.0;}
}

具体装饰器:加糖

public class SugarDecorator extends CoffeeDecorator {public SugarDecorator(Coffee coffee) {super(coffee);}@Overridepublic String getDescription() {return super.getDescription() + " + 糖";}@Overridepublic double cost() {return super.cost() + 1.0;}
}

客户端使用

public class Main {public static void main(String[] args) {Coffee coffee = new SimpleCoffee();coffee = new MilkDecorator(coffee);coffee = new SugarDecorator(coffee);System.out.println(coffee.getDescription() + ",价格:" + coffee.cost());}
}

🧩 优点

  • 灵活、可扩展性强,支持动态组合
  • 避免类继承造成的类爆炸
  • 满足开闭原则

⚠️ 缺点

  • 多层装饰器会增加系统复杂度,调试不易
  • 对象结构可能过于复杂,难以理解

✅ 使用建议

  • 当你希望在运行时增加对象行为,而不是通过继承
  • 多个类之间功能相似,可通过组合代替继承
http://www.dtcms.com/wzjs/266392.html

相关文章:

  • 广东省建设交易中心网站首页优秀软文营销案例
  • 网站域名权深圳市推广网站的公司
  • 如何做平台网站迅雷磁力链bt磁力天堂
  • 网络公司网站建设服务长春网站优化体验
  • 百度怎么发布网站辽宁seo推广
  • 奉贤网站制作镇江网站seo
  • 米拓做的网站如何改代码专业营销团队外包公司
  • 购买域名后怎么使用搜索引擎营销简称seo
  • 为何建设银行网站无法登陆百度优化软件
  • 北京协会网站建设广州seo网站管理
  • 上海软件开发的公司排名怎样下载优化大师
  • 怎么建设医疗美容网站软文案例300字
  • 广州专业的网站建设网络推广平台
  • 龙岗在线网站建设网站平台如何推广
  • 传奇动态网站怎么做刷粉网站推广免费
  • 莱州网站建设推广普通话的宣传语
  • 如何做网站哪个站推广长沙百度快照优化排名
  • 重庆建设公司网站成品网站1688入口的功能介绍
  • 网站建设图片拍摄价格站长素材音效网
  • 南宁专业网站制作前十排名手机端关键词排名优化软件
  • 做模板网站赚钱吗百度一下百度官方网
  • 在线做生存曲线的网站有哪些网站免费建站app
  • 石家庄市住建局官网网站seo优化检测
  • 富阳区建设工程质监站网站宁波seo企业网络推广
  • 网站建设模板型和定制型荆门网络推广
  • 合川网站建设十大搜索引擎排行榜
  • 200网址大全百度推广seo自学
  • 绩溪网站建设新东方在线网上课程
  • 湖北外贸网站建设网页搭建
  • 网站开发和编程的联系做网站的网络公司