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

网站教人做核能灯旧手机服务器wordpress

网站教人做核能灯,旧手机服务器wordpress,做网站淘汰了,快速刷排名的软件最好介绍 装饰器模式 装饰器模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它允许你动态地将行为添加到现有的对象中#xff0c;而无需修改其代码。装饰器模式提供了比继承更灵活的功能扩展方式。 主要角色 Component#xff1a;定义一个对…介绍 装饰器模式 装饰器模式Decorator Pattern是一种结构型设计模式它允许你动态地将行为添加到现有的对象中而无需修改其代码。装饰器模式提供了比继承更灵活的功能扩展方式。 主要角色 Component定义一个对象接口可以给这些对象动态地添加职责。ConcreteComponent具体实现Component接口的类即被装饰器装饰的原始对象。Decorator装饰器基类持有一个Component对象的引用并且与Component接口保持一致。ConcreteDecorator具体的装饰器类实现具体要向Component添加的功能。 Java代码实现示例 我们将通过一个简单的例子来演示装饰器模式。假设我们有一个基本的消息发送系统能够发送简单的文本消息。现在我们希望能够在发送消息之前对消息进行加密并在发送之后记录日志。 定义组件接口和具体组件 // Component interface Message {String send(); }// ConcreteComponent 被装饰者 class TextMessage implements Message {private String content;public TextMessage(String content) {this.content content;}Overridepublic String send() {return Sending message: content;} }定义装饰器基类和具体装饰器 // Decorator 装饰者 (增强 abstract class MessageDecorator implements Message {protected Message wrapped;public MessageDecorator(Message wrapped) {this.wrapped wrapped;}Overridepublic String send() {return wrapped.send();} }// ConcreteDecoratorA class EncryptedMessageDecorator extends MessageDecorator {public EncryptedMessageDecorator(Message wrapped) {super(wrapped);}Overridepublic String send() {String originalMessage wrapped.send();String encryptedMessage encrypt(originalMessage);return Encrypted( encryptedMessage );}private String encrypt(String message) {// 简单的模拟加密逻辑StringBuilder encrypted new StringBuilder(message);return encrypted.reverse().toString();} }// ConcreteDecoratorB class LoggedMessageDecorator extends MessageDecorator {public LoggedMessageDecorator(Message wrapped) {super(wrapped);}Overridepublic String send() {String result wrapped.send();log(result);return result;}private void log(String message) {System.out.println(Logging: message);} }使用装饰器模式 public class Main {public static void main(String[] args) {Message message new TextMessage(Hello, World!);// 使用加密装饰器Message encryptedMessage new EncryptedMessageDecorator(message);System.out.println(encryptedMessage.send()); // 输出加密后的消息// 使用日志装饰器Message loggedMessage new LoggedMessageDecorator(message);System.out.println(loggedMessage.send()); // 日志消息并输出// 组合装饰器Message encryptedLoggedMessage new LoggedMessageDecorator(new EncryptedMessageDecorator(message));System.out.println(encryptedLoggedMessage.send()); // 输出加密并记录日志的消息} }运行结果 解释 Message接口定义了发送消息的方法 send。TextMessage类实现了Message接口表示一个简单的文本消息。MessageDecorator抽象类也是Message接口的实现但它持有一个Message对象并在其方法调用时委托给该对象。EncryptedMessageDecorator类扩展MessageDecorator通过重写 send 方法添加加密功能。LoggedMessageDecorator类扩展MessageDecorator通过重写 send 方法添加日志记录功能。 通过这种方式我们可以在不修改原始类的情况下为对象动态添加新功能。这提供了一种比继承更灵活、可扩展性更强的方式来增强对象的行为。 类图 装饰器模式Decorator Pattern是一种结构型设计模式允许你通过将对象放入包装对象中来动态地添加行为相比继承更加灵活。以下是装饰器模式的类图示例 ---------------------------------- | Component | ---------------------------------- | operation(): void | ----------------------------------^|| ----------------------------- | ConcreteComponent | ----------------------------- | operation(): void | -----------------------------△| ----------------------------- | Decorator | ----------------------------- | component: Component | | operation(): void | -----------------------------|| ----------------------------- | ConcreteDecoratorA | ----------------------------- | operation(): void | | addedBehavior(): void | -----------------------------△| ----------------------------- | ConcreteDecoratorB | ----------------------------- | operation(): void | | addedBehavior(): void | -----------------------------说明 Component抽象构件 定义一个对象接口可以给这些对象动态地添加职责。operation() 是抽象操作可以是接口或者抽象类。 ConcreteComponent具体构件 定义一个具体的对象也可以给这个对象添加一些职责。 Decorator装饰器抽象类 持有一个 Component 对象的引用并定义一个与 Component 接口一致的接口。可以用来装饰 Component 对象增加其行为。 ConcreteDecoratorA、ConcreteDecoratorB具体装饰器 负责给具体构件对象添加额外的职责。 类图说明 Component 是抽象构件角色定义了对象接口。ConcreteComponent 是具体构件角色实现了 Component 接口的具体对象。Decorator 是装饰器抽象类持有一个 Component 对象的引用并定义了与 Component 接口一致的接口。ConcreteDecoratorA、ConcreteDecoratorB 是具体装饰器类实现了 Decorator 定义的接口负责给 Component 对象添加额外的职责。 装饰器模式的核心是通过组合而非继承来扩展对象的功能使得动态添加功能更加灵活。
http://www.dnsts.com.cn/news/4636.html

相关文章:

  • 精美的微网站能够做冶金工程毕业设计的网站
  • 网站实现功能网页游戏代理平台
  • qq空间认证的网站后台根目录中小企业erp软件排名
  • 天津网站建设索王道下拉房产中介如何找客源
  • 可以看所有网站的浏览器佛山关键词网站排名
  • 代码做网站图片怎么插深圳博大建设公司
  • 响应式 网站 开发价格低英语翻译
  • vue做网站前台网站建设技术可行性
  • 电子书网站用dz还是wordpresswordpress是啥东西
  • 四川建设厅招投标官方网站wordpress新闻墙插件
  • 企业网站网页布局中国网络营销传播网
  • phpcms 网站访问统计哪个网站做废旧好
  • 网站做的不满意网站的设计流程有哪些步骤
  • 重庆建网站推广价格官网优化公司
  • 网站排名优化软件小程序商店制作教程
  • 开题报告风景区网站开发微信公众号人工服务电话
  • 中国小康建设网 官方网站设计师常备设计网站大全
  • 张家港市规划建设网站美食网站设计欣赏
  • 秦皇岛工程建设信息网站网易云wordpress代码
  • 巩义网站建设微商分销系统开发
  • 天津网站建设是什么企业推广软件有哪些
  • 做微信封面的网站巴彦淖尔市 网站建设
  • 网站推广主要方法请人做网站要多少
  • 企业网站需要在电信做哪些备案清溪网站建设公司
  • 肥城网站网站建设无代码建站
  • 网站推广初期目标营销网络地图
  • 豆角网是哪个网站开发的自己弄个网站
  • php网站建设网站wordpress5.2.2
  • 建设京东商城网站月亮花园wordpress
  • 华为建站模板本wordpress慢