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

自己可以进行网站建设吗百度搜索风云榜电视剧

自己可以进行网站建设吗,百度搜索风云榜电视剧,平台推广策略,谈谈设计和建设网站体会装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种设计模式通过创建一个包装对象,即装饰器,来封装实际对象。 装饰器模式的主要组成&#…

装饰器模式(Decorator
Pattern)是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种设计模式通过创建一个包装对象,即装饰器,来封装实际对象。

装饰器模式的主要组成:
组件接口:定义了对象的接口,可以给这些对象动态地添加职责。
具体组件:定义了将要接收附加责任的对象。
装饰器:持有一个组件对象的引用,并定义一个与组件接口一致的接口。
具体装饰器:负责给组件添加新的责任。

应用场景:
需要扩展一个类的功能。
动态地添加功能。
需要通过子类化来扩展功能,但又想避免使用继承带来的缺点。

  1. 定义一个coffer组件接口
public interface Coffee {double getCost();String getDescription();
}

2.实现一个便宜的黑咖啡,一块钱一杯

public class SimpleCoffee implements Coffee {@Overridepublic double getCost() {return 1;}@Overridepublic String getDescription() {return "Simple coffee";}
}

如何把这杯黑咖啡升值呢???当然我需要给它包装,这个时候装饰器设计模式来了,让便宜点黑咖啡山鸡变凤凰!!!
3. 装饰器抽象类来了,它可以将任何咖啡包装成你高攀不起的样子!!!

public abstract class CoffeeDecorator implements Coffee {protected final Coffee decoratedCoffee;//这和代理模式的区别,这里的类是通过构造器传过来的public CoffeeDecorator(Coffee coffee) {this.decoratedCoffee = coffee;}@Overridepublic double getCost() {return decoratedCoffee.getCost();}@Overridepublic String getDescription() {return decoratedCoffee.getDescription();}
}
  1. 不信?那我来实现个卡布奇诺
public class Cappuccino Decorator extends CoffeeDecorator {public Cappuccino (Coffee coffee) {super(coffee);}@Overridepublic double getCost() {return super.getCost() + 31;}@Overridepublic String getDescription() {return super.getDescription() + ", with milk";}
}
  1. 出来吧!包装版卡布奇诺
public class CoffeeShop {public static void main(String[] args) {Coffee coffee = new SimpleCoffee();System.out.println(coffee.getCost()); // 1System.out.println(coffee.getDescription()); // Simple coffeeCoffee cappuccino = new Cappuccino (coffee);System.out.println(cappuccino .getCost()); // 32System.out.println(cappuccino .getDescription()); // Simple coffee, with milk}
}

那么,这样做有啥好处呢?我用类继承也可以实现啊

装饰器模式提供了一种灵活的替代继承的方法来扩展对象的行为。通过添加新的装饰器类,可以轻松地为现有对象添加新功能,而不需要修改原有代码。

灵活性:可以在运行时动态地添加或移除装饰器,从而改变对象的行为。这使得程序更加灵活,能够适应不断变化的需求。

低耦合性:装饰器模式通过组合而非继承来扩展功能,减少了类之间的依赖关系。这有助于降低系统的耦合度,使得代码更容易维护和扩展。

责任分离:装饰器模式将系统的不同功能分离开来,每个装饰器类负责特定的功能扩展。这种责任分离有助于降低系统的复杂性,使得各个部分更容易理解和管理。

支持开闭原则:装饰器模式支持开闭原则,即对扩展开放,对修改关闭。可以通过添加新的装饰器来扩展系统功能,而不需要修改现有代码。

http://www.dtcms.com/wzjs/518503.html

相关文章:

  • 自己做培训需要网站吗重庆整站seo
  • 一个app开发大概要多少钱百度seo在哪里
  • 一般使用的分辨率的显示密度是seo关键词优化排名哪家好
  • html5 css3网站实例济南seo关键词优化方案
  • 电子商务网站建设资料广告软文外链平台
  • html源码网站建设中郑州网络营销推广公司
  • 重庆环保公司网站建设网站排名查询工具
  • 网站推广工作计划欧洲站fba
  • 零基础做网站百度宁波营销中心
  • ui设计师怎么做自己的网站简短的营销软文范文
  • 佛山网站建设 奇锐科技五年级上册优化设计答案
  • 易企秀微网站如何做文字链接河北百度seo关键词
  • ui设计培训多长时间抖音seo排名系统哪个好用
  • 凡科app国家优化防控措施
  • 50万县城做地方网站新网站怎么推广
  • 崇明网站怎么做seo最好的关键词排名优化软件
  • 女士春深圳 网站制作seo网站推广专员
  • 网上做任务赚钱网站有哪些百度seo培训要多少钱
  • 网站开发项目成本分析之合理性媒体吧软文平台
  • 创新型的赣州网站建设网络广告案例以及分析
  • 虚拟主机怎么发布网站电商自学网
  • 怎么样签约设计网站新app推广去哪里找
  • 获取网站后台地址网域名解析ip查询
  • 网站关键词怎么选seo快速排名服务
  • 微信网页宣传网站怎么做的全球搜索引擎排名2022
  • 青岛做网站哪家好惠州seo网站管理
  • 网站开发一定找前端么搜索引擎的工作原理有哪些
  • 吉林省住房城乡建设网站时事新闻最新消息
  • yy陪玩网站怎么做网站建设方案开发
  • 哈尔滨网站建设工作室求几个微信推广平台