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

廊坊网站群建设wordpress做旅游网站

廊坊网站群建设,wordpress做旅游网站,个人免费发布信息平台,网站建设包含内容4.4 装饰模式 1.模式定义 不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。 2.模式结构 抽象构件角色 :定义一个抽象接口以规范准备接收附加责任的对象。客户端可以方便调用装饰类和被装饰类…

4.4 装饰模式

1.模式定义

不改变现有对象结构的情况下,动态地给该对象增加一些职责(即增加其额外功能)的模式。

2.模式结构

image-20241013161535947

抽象构件角色 :定义一个抽象接口以规范准备接收附加责任的对象。客户端可以方便调用装饰类和被装饰类。

具体构件角色 :实现抽象构件,通过装饰角色为其添加一些职责。

抽象装饰角色 : 继承或实现抽象构件,并包含具体构件的实例,可以通过其子类扩展具体构件的功能。

具体装饰角色 :实现抽象装饰的相关方法,并给具体构件对象添加附加的责任。

3.模式原理

在不改变对象本身的基础之上,给对象添加或删除行为,往往可以通过继承机制或者是关联机制实现

  • 继承机制:通过子类对父类的继承,重写或添加新的方法来扩展类
  • 关联机制:将一个类的对象嵌入另一个类的对象之中,进而在另一个类中扩展其行为(通过递归嵌套实现多层装饰)

4.代码模板

抽象装饰类

public class Decorator implements Component {//关联抽象构建private Component component;//构造注入具体构建public Decorator(Component component) {this.component = component;}@Overridepublic void operation() {component.operation();}
}

具体装饰类

public class ConcreteDecorator extends Decorator{public ConcreteDecorator(Component component) {super(component);}public void operation() {super.operation();addBehavior();}private void addBehavior() {//新增方法}
}

5.案例分析

image-20241013173014212

public interface Call {public void callMusic();
}public class Phone implements Call {public Phone() {System.out.println("普通手机");}@Overridepublic void callMusic() {System.out.println("来电话了,手机发出响声");}
}public class Decorator implements Call{private Call call;public Decorator(Call call) {this.call = call;}public void setCall(Call call) {this.call = call;}@Overridepublic void callMusic() {System.out.println("来电话了,手机发出响声");}
}public class JarPhone extends Decorator {public JarPhone(Call call) {super(call);System.out.println("振动手机");}public void jar() {super.callMusic();System.out.println("振动~~~");}
}public class LightPhone extends Decorator{public LightPhone(Call call) {super(call);System.out.println("闪光手机");}public void light() {super.callMusic();System.out.println("闪光~~~");}
}public class Main {public static void main(String[] args) {Phone phone = new Phone();System.out.println("电话来了");phone.callMusic();System.out.println("————————————————");JarPhone jarPhone = new JarPhone(phone);System.out.println("电话来了");jarPhone.jar();System.out.println("————————————————");LightPhone lightPhone = new LightPhone(phone);System.out.println("电话来了");lightPhone.light();System.out.println("————————————————");//将闪光手机改装成可以振动且闪光的手机System.out.println("组装手机:");lightPhone.light();jarPhone.setCall(lightPhone);jarPhone.jar();}
}

6.模式优缺点

image-20241013175750571

7.模式使用场景

image-20241013175846869

8.模式应用

  • IO流中使用:InputStream和OutputStream中只提供了简单的读写操作,通过装饰模式可以得到具有文件输入输出的FileInputStream等
  • javax.swing中也有大量使用
http://www.yayakq.cn/news/554059/

相关文章:

  • 宁津 做网站即墨网站建设
  • 模板网站建设公司 东莞广东省建筑信息网查询系统
  • php网站开发实例教程书医疗网站前置审批查询
  • 做网站的公司叫什么名字好企业网站自己怎么做
  • 专业建站外包做网站课程
  • 义乌外贸网站建设公司主机网站
  • 多个织梦dedecms网站怎么做站群抖音网站建设的基本情况
  • wordpress 网站统计巴中建网站的公司
  • 移动端网站怎么做wordpress gallery插件
  • 网站做301跳转的作用网站建设及验收标准
  • 专业的论坛网站建设开发免费一键自助建站官网
  • 怎么样免费做自己的网站南京紫米网络科技有限公司
  • 临沂谁会做网站普陀网站建设
  • mc网站的建设docker查看wordpress
  • 贵州专业建网站郑州制作微信小程序
  • 文山市住房和城乡建设局网站上海装修公司哪家最好
  • 办文明网站做文明网民活动方案wordpress优化宝塔
  • 推荐做任务网站网站设计在线crm系统
  • 申请个人网站画册设计公司网站
  • 简单网站模板下载美食网页设计图
  • 网页设计 参考网站安州区建设局网站
  • 上海婚恋网站排名wordpress网店适合
  • 推进网站建设工作计划wordpress在php下安装教程
  • 网站建设需要了解哪些方面潍坊网站开发asp培训
  • 网站的建设公司简介开发网站找什么公司吗
  • 搭建钓鱼网站教程怎么去创建一个公司
  • 刷死粉网站推广做一个商城网站需要提交那些文件
  • 松江网站建设品划网络上海本地app推荐
  • 手机怎样做自己的网站企业网站建设在国内现状
  • 建站大师网站建设公司广州增城