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

有梦商城公司网站制作音乐排行榜网页设计

有梦商城公司网站,制作音乐排行榜网页设计,帝国cms网站地图生成,Wordpress的根目录在哪模式定义 动态地给对象增加额外的职责 对象结构型模式 模式结构 Component:抽象构件 ConcreteComponent: 具体构件 Decorator:抽象装饰类 ConcreteDecorator: 具体装饰类 抽象装饰类代码 public class Decorator extends Compo…

模式定义

动态地给对象增加额外的职责

  • 对象结构型模式

模式结构

  • Component:抽象构件
  • ConcreteComponent: 具体构件
  • Decorator:抽象装饰类
  • ConcreteDecorator: 具体装饰类
抽象装饰类代码
public class Decorator extends Component {private Component component;public Decorator(Component component) {this.component = component;}public void operation() {component.operation();}}

具体装饰类代码

public class ConcreteDecorator extends Decorator {Object addedState; // 新增属性public ConcreteDecorator(Component component) {super(component);}public void operation() {super.operation();addedBehavior();}// 新增方法public void addedBehavior() {// do something}}
  • 一个装饰类的接口必须与被装饰类的接口保持相同
    • 对于客户端来说无论是装饰之前的对象还是装饰之后的对象都可以一致对待
  • 尽量保持具体构件类Component作为一个“轻”类
    • 不要把太多的逻辑和状态放在具体构件类中可以通过装饰类对其进行扩展

简化装饰模式

如果只有一个具体构件类而没有抽象构件类,那么抽象装饰类可以作为具体构件类的直接子类

透明装饰模式

客户端完全面向抽象编程

  • 客户端不声明具体构件类型和具体装饰类型,而全部声明为抽象构件类型

半透明装饰模式

客户端面向抽象构件类型具体装饰类型编程

  • 客户端可以声明具体装饰者类型对象,调用具体装饰者中新增方法

实例

某系统提供了一个数据加密功能,可以对字符串进行加密。最简单的加密算法通过对字母进行移位来实现,同时还提供了稍复杂的逆向输出加密,还提供了更为高级的求模加密。用户先使用最简单的加密算法对字符串进行加密,如果觉得还不够可以对加密之后的结果使用其他加密算法进行二次加密,当然也可以进行第三次加密。现使用装饰模式设计该多重加密系统。

模式分析

  • 优点
    • 提供比继承更多的灵活性以扩展对象功能
    • 通过配置文件在运行时选择不同的装饰器以动态扩展对象功能
    • 具体构件类和具体装饰类可以独立变化
      • 符合开闭原则
  • 缺点
    • 增加系统的复杂度
    • 比继承更加易于出错,排错困难

适用环境

  • 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
  • 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销
  • 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时
    • 系统中存在大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长
    • 不能继承的类定义(如final类)

文章转载自:

http://ucv2vcCV.Lfqnk.cn
http://EjmQgij0.Lfqnk.cn
http://QOAq4y63.Lfqnk.cn
http://4zDFAe6M.Lfqnk.cn
http://nzeH2QtP.Lfqnk.cn
http://NDIcI8iw.Lfqnk.cn
http://WBV830sn.Lfqnk.cn
http://2AXu1mQo.Lfqnk.cn
http://mgsHOCUW.Lfqnk.cn
http://udHi8Vfu.Lfqnk.cn
http://GKpEH6Fz.Lfqnk.cn
http://fXT9lITR.Lfqnk.cn
http://T9NVlHTx.Lfqnk.cn
http://jrqnULv7.Lfqnk.cn
http://prCPswYY.Lfqnk.cn
http://dh6ncrWI.Lfqnk.cn
http://wUROGOFx.Lfqnk.cn
http://DMpDm1F8.Lfqnk.cn
http://Svg6EGvO.Lfqnk.cn
http://j8K1eJN5.Lfqnk.cn
http://7pgy4tb6.Lfqnk.cn
http://VN3UAcZI.Lfqnk.cn
http://oMMbAu2z.Lfqnk.cn
http://cE1AtKHf.Lfqnk.cn
http://ZwxVsYyk.Lfqnk.cn
http://OYTIrAFe.Lfqnk.cn
http://diov7BlD.Lfqnk.cn
http://wbEnWkKY.Lfqnk.cn
http://Q6Tcqy0M.Lfqnk.cn
http://NP0DfKe3.Lfqnk.cn
http://www.dtcms.com/wzjs/746200.html

相关文章:

  • 免费手机个人网站莱州信息网
  • 论述网站建设过程中应注意的问题丹江口市建设局网站
  • tp5网站开发逻辑架构自助建站是什么意思
  • 浙江省建设银行网站浅谈网站建设的目的和意义
  • 西安专业网站开发联系电话东营做网站哪家好
  • 白云做网站SEO上海做网站的月薪
  • 网站规划与建设模板专业建站推荐
  • 网站链接设计小城镇建设网站的观点
  • 网站如何做seo的动画设计就业方向和发展前景
  • 网页ui设计网站济宁网站运营策略
  • 衡阳网站定制网站站点
  • 国际设计师网站有哪些1小时前俄乌战况消息
  • 怎么看到网站开发时间网站建设成本
  • 网站建设续费是那些驻马店网站建设熊掌号
  • 八角网站建设旅游网站设计说明
  • 成都cms建站52麻将官方网站做代理
  • 哪个网站做免费小程序商城网站建设需要多少钱
  • 团建网站建设wordpress阿里云建站
  • 自己做的网站能上传吗国内营销策划公司排名
  • 设计素材网站酷p搜狗识图
  • 做盗版小说网站赚钱嘛云南建设厅网站首页
  • 长春网站制作企业做网站的必要
  • 怎样做分销网站百度联盟添加网站
  • 网站的推广一般有什么方式便宜购 网站建设
  • 云南省城市建设培训中心网站上海公司注册地址可以是住宅吗
  • 北京规划网站网站建设招聘需求
  • 百度推广代理怎么加盟电子商务沙盘seo关键词
  • 照明公司网站制作公司网络组建方案设计
  • 做网站什么系统简单网站建设案例收费吗
  • 马鞍山做网站的公司78做网站的公司怎么转型