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

seo站长工具平台搜索引擎排名优化

seo站长工具平台,搜索引擎排名优化,秦皇岛网站搜索优化,广州网站建设360元概述 装饰器模式 : 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/526767.html

相关文章:

  • 软件设计师中级考什么关键词在线优化
  • 电子商务网站建设薛万欣网络热词2022流行语及解释
  • 海安网站开发网络营销有哪几种方式
  • wordpress跳转链接404网站怎样优化文章关键词
  • 政府网站建设实施意见网站制作的基本流程
  • tornado网站开发网络推广的渠道和方式有哪些
  • wordpress 秀百度排名优化
  • 给非法公司做网站维护济南seo整站优化招商电话
  • 徐州梦网科技做网站怎么样贵阳关键词优化平台
  • 网站天天做收录有效果吗竞价推广sem
  • 建立企业官方网站爱站网
  • 有没有专门做美食的网站网页设计规范
  • 网站建设劳务协议百度关键词搜索广告的优缺点
  • 良品铺子的网站建设目标营销公司排名
  • ps做网站主页的效果图发软文的平台
  • 高端网站建设公司排行网络推广用什么软件好
  • 二手车网站源码下载seo关键词工具
  • 安全的网站建设服务西安seo技术培训班
  • 靖江做网站的单位网页设计自学要多久
  • 什么网站做广告效果好重庆百度
  • 软件介绍网站源码深圳百度推广
  • 微信公众平台怎么做微网站吗有哪些搜索引擎网站
  • 织梦网站密码拉新app渠道
  • 网站建设 域名 数据库河南整站百度快照优化
  • 动态网站建设怎么样电话销售怎么找客户渠道
  • 医妃在上王爷别乱来关键词优化公司推荐
  • 在哪里可以学做饰品网站自己怎么做引流推广
  • 济南建站服务商今天特大新闻
  • 重庆知名网站建设公司网络广告宣传怎么做
  • 贵阳网站设计企业网站排名优化软件哪家好