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

游戏推广公司成都seo优化外包公司

游戏推广公司,成都seo优化外包公司,什么是网站设计,视频软件制作app概述 装饰器模式 : Decorator Pattern : 是一种结构型设计模式. 作用 : 允许你动态地给对象添加功能或职责,而无需修改其原始类的代码,非常的符合 开闭原则。 实现思路 :通过创建一个包装对象(即装饰器),来…

概述

装饰器模式 : Decorator Pattern : 是一种结构型设计模式.
作用 : 允许你动态地给对象添加功能或职责,而无需修改其原始类的代码,非常的符合 开闭原则
实现思路 :通过创建一个包装对象(即装饰器),来包裹原始对象,并在运行时动态地为这个对象增加新的行为。
简单理解 : 就是一层一层的包装起来。

核心思想

1、开放封闭原则:软件实体(类、模块、函数等)应该对扩展开放,对修改封闭。
装饰器模式很好地体现了这一原则,它允许我们在不改变已有代码的情况下,通过添加新的装饰器类来扩展功能。
2、避免继承层次过多:如果使用继承来实现功能扩展,可能会导致子类数量爆炸式增长。而使用装饰器模式可以有效地减少这种复杂性。

主要角色

1、Component(组件):定义了被装饰的对象接口,可以是一个具体类或抽象类。
2、ConcreteComponent(具体组件):实现了Component接口的具体类,是我们希望装饰的对象。
3、Decorator(装饰器):持有一个Component对象的引用,并且定义了一个与Component相同的接口,使得Decorator可以替代具体的组件。
4、ConcreteDecorator(具体装饰器):实现了Decorator接口,并在其基础上添加了额外的行为或功能。

情景模式

1、有一些企业是 做电子产品的,可以生产各种各样的电子产品 - 抽象的组件
2、有一家企业是 专门生产电脑的 - 具体的组件
3、有一些企业是做 音响的,可以给电脑配置音响 - 装饰器
4、有一家企业是 专门给电脑定制音响的 - 具体装饰器
5、有一些企业是做 软件的,可以给电脑安装软件 - 装饰器
6、有一家企业是 专门给电脑做 聊天软件的 - 具体的装饰器

类图

在这里插入图片描述

案例代码

被装饰者-组件

接口类

public interface ElectronProduct {void generatElectronProduct();
}

具体实现类

public class ComputerProduct implements ElectronProduct{@Overridepublic void generatElectronProduct() {System.out.println("生产电脑。。。");}
}

装饰器

抽象类/基类

public abstract class ELectronicDecorator implements ElectronProduct{protected ElectronProduct electronProduct;public ELectronicDecorator(ElectronProduct electronProduct) {this.electronProduct = electronProduct;}// 对接口中的方法进行实现,也可以做成抽象的@Overridepublic void generatElectronProduct() {electronProduct.generatElectronProduct();}
}

具体实现类-可以有多个

public class ComputerDecorator extends ELectronicDecorator{public ComputerDecorator(ElectronProduct electronProduct) {super(electronProduct);}@Overridepublic void generatElectronProduct() {electronProduct.generatElectronProduct();System.out.println("增加电脑装饰-安装软件");}
}
public class ComputerDecorator2 extends ELectronicDecorator{public ComputerDecorator2(ElectronProduct electronProduct) {super(electronProduct);}@Overridepublic void generatElectronProduct() {electronProduct.generatElectronProduct();System.out.println("增加电脑装饰-增强音响");}
}

测试类


public class Test {public static void main(String[] args) {// 1、最原始的对象ElectronProduct electronProduct = new ComputerProduct();electronProduct.generatElectronProduct(); // 原生的方法System.out.println(" =============== ");// 2、添加一层装饰ELectronicDecorator eLectronicDecorator = new ComputerDecorator(electronProduct);eLectronicDecorator.generatElectronProduct(); // 装饰器对象的方法,将原来的方法进行了增强System.out.println(" =============== ");// 3、再多一层装饰ELectronicDecorator eLectronicDecorator2 = new ComputerDecorator2(eLectronicDecorator);eLectronicDecorator2.generatElectronProduct();// 后续还可以继续添加装饰}
}
运行结果:
生产电脑。。。=============== 
生产电脑。。。
增加电脑装饰-安装软件=============== 
生产电脑。。。
增加电脑装饰-安装软件
增加电脑装饰-增强音响
http://www.dtcms.com/wzjs/347332.html

相关文章:

  • 安溪县建设局网站营销宝
  • 济南做网站优化价格全国疫情排行榜
  • 网站建设工程师证书营销推广策划及渠道
  • 做网站就用建站之星辽宁seo推广
  • 室内设计师培训零基础百度seo优化系统
  • 网站建设开发公司百度推广售后客服电话
  • 小程序商城首页设计南京搜索引擎推广优化
  • 专门做日本旅行网站谷歌外贸网站推广
  • 台州优化官方网站口碑营销例子
  • wordpress页面后台登录百度搜索推广优化师工作内容
  • 富阳营销型网站建设免费网络营销软件
  • bootstrap框架制作网页网站文章优化技巧
  • 定制型网站建设推广潍坊seo推广
  • 网站建设方案书是啥最新国际新闻头条今日国际大事件
  • 山西网站推广公司seo项目是什么
  • 做网站加推广网站建设公司哪个好呀
  • 顺德网站建设公司查询网站收录
  • wordpress 清空回收站域名注册平台
  • 哪些网站免费注册企业域名汽车seo是什么意思
  • 中国建设银行东莞市网站soso搜索引擎
  • 培训机构的网站建设郑州seo优化哪家好
  • 中国建设银行网站-诚聘英才百度网页搜索
  • 做视频的素材什么网站好百度收录平台
  • 网站的建设与应用网站推广与优化平台
  • 广饶县开发区政法委网站开百度问答库
  • 乌鲁木齐制作网站软文写作什么意思
  • 网站如何做推广seo优化服务是什么意思
  • 深圳优化网站公司哪家好培训心得简短50字
  • wordpress读取菜单seo外链
  • 网站做cdn关键词挖掘工具网站