当前位置: 首页 > 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/37186.html

相关文章:

  • 培训机构做网站宣传网推平台
  • 三网合一 做网站seo技术培训东莞
  • 手机屏网站开发汽车品牌推广策划方案
  • 行业网站建设的书简述seo的概念
  • 郑州服务项目网站建设公司免费域名注册平台有哪些
  • 曲阜做网站哪家好谷歌搜索引擎免费入口 香港
  • 网站服务器哪家好些排名优化方法
  • 做网站需要走哪些程序网站服务器信息查询
  • 摄影网站的需求分析专门开发小程序的公司
  • 网站首页图片分辨率广告软文
  • 互联网公司运营北京seo优化wyhseo
  • 广州专业网站建设哪家公司好百度一下百度搜索入口
  • 承德市网站开发营销网站有哪些
  • 淄博专业网站建设公司张雪峰谈广告学专业
  • 免费网站建设无广告公司网站建设哪个好
  • 网站建设公司位置域名注册哪个平台比较好
  • 新手建什么网站赚钱吗常州网站建设
  • 做网站用什么系统石家庄新闻网
  • wordpress手机网站怎么做建设网页
  • 上国外网站的host快速排名生客seo
  • 本网站建设中seo网站排名优化公司
  • 要做网站到哪里做岳阳seo公司
  • 教育培训机构怎么建设网站网站seo的方法
  • 网站上面的图片是怎么做的2023半夜免费b站推广
  • 广州做动态网站的公司苏州关键词优化怎样
  • 高端品牌化妆品排行榜前十名网站搜索优化公司
  • 2017年做那家网站好免费的网站推广平台
  • 腾讯视频wordpress苏州关键词优化软件
  • 好的漂亮的淘宝客网站模板企业网络策划
  • 做企业网站一般多少钱凡科建站下载