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

ssm框架网站开发 参考文献/seo顾问是什么职业

ssm框架网站开发 参考文献,seo顾问是什么职业,哪个协会要做网站建设啊,好单库网站是怎么做的转自:http://www.iteye.com/topic/121149 装饰模式是对对象功能增强时,平时使用继承的一种替代方案一.UML示意图:二.组成部分:1. 抽象构件:原始的功能接口2. 具体构件:具…

转自:http://www.iteye.com/topic/121149

装饰模式是对对象功能增强时,平时使用继承的一种替代方案
一.UML示意图:

二.组成部分:
1.       抽象构件:原始的功能接口
2.       具体构件:具体的原始功能类
3.       装饰角色:持有具体构件类的对象,以便执行原有功能
4.       具体装饰:具体扩展的功能在这里
三.例子代码:使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)
1. 抽象构件
package com.eekq.decorator;
 
publicinterface Component {
    /**原始接口*/
    publicvoid go();
}
2. 具体构件
package com.eekq.decorator;
 
publicclass ConcreteComponent implements Component {
 
    publicvoid go() {    
        System.out.println("行走");
    }
 
}
3.装饰角色来了
package com.eekq.decorator;
 
publicclass Decorator implements Component {
    /**持有私有的原始构件*/
    private Component component;
 
    /**构造子,委派给原始构件*/
    protected Decorator(Component component) {
        this.component = component;
    }
 
    /**调用原始构件功能,通常就可直接把扩展功能加在此方法中*/
    publicvoid go() {
        this.component.go();
    }
 
}
4.具体装饰(这里演示了两种扩展的情况,走路+听音乐和唱歌s)
(1).
package com.eekq.decorator;
 
publicclass ConcreteDecoratorListen extends Decorator {
 
    /**构造子,相关初始化*/
    public ConcreteDecoratorListen(Component component) {
        super(component);
        // code is here
    }
 
    /**商业逻辑,对原始构件功能的扩展*/
    publicvoid go() {    
        listen("听音乐");//执行扩展功能
        super.go();
    }
   
    privatevoid listen(Object obj){
        System.out.println(obj);       
    }
 
}
(2).
package com.eekq.decorator;
 
publicclass ConcreteDecoratorSing extends Decorator {
 
    /**构造子,相关初始化*/
    public ConcreteDecoratorSing(Component component) {
        super(component);
        // code is here
    }
 
    /**商业逻辑,对原始构件功能的扩展*/
    publicvoid go() {    
        super.go();
        System.out.println(sing());;// 执行扩展功能
    }
 
    private String sing() {
        return"唱歌";
    }
}
5.客户端调用
package com.eekq.decorator;
 
publicclass Main {
 
    publicstaticvoid main(String[] args) {
        /**原始构件*/
        Component component = new ConcreteComponent();
        /**边听音乐,边走路*/
        ConcreteDecoratorListen cdl = new ConcreteDecoratorListen(component);
        cdl.go();
        System.out.println();
        /**边走路,边唱歌*/
        ConcreteDecoratorSing cds = new ConcreteDecoratorSing(component);
        cds.go();
    }
 
}
四.总结
优点:装饰模式和继承都是对功能的扩展,而装饰模式使用的是组合,可以不用继承而达到这一效果.使用过多的继承会增加系统的复杂性和偶合性
缺点:装饰模式要产生一些辅助性的对象,但这些对象看上去都比较像,不是很容易检查(好的命名应该是提高检查的一个办法)

http://www.jmfq.cn/news/5115871.html

相关文章:

  • 深圳实力网站建设/服务营销案例
  • 东莞网站建设案例/百度权重查询爱站网
  • 商城网站项目工作的流程/seo服务销售招聘
  • 高端网站建设 上海/网络推广费用一般多少
  • 个人网站制作模板图片/seo描述快速排名
  • 如何做网站设计/360优化大师旧版本
  • 做外贸搜索外国客户的网站/在线注册免费域名
  • 怎么定义自豪地采用WordPress/六六seo基础运营第三讲
  • jsp可以做网站首页吗/百度指数的数值代表什么
  • 做网站的一般多少钱/搜索引擎推广有哪些平台
  • 森东网站建设/重庆公司网站seo
  • 为何网站不被百度收录/搜索引擎技术
  • 快递网站建设日程表/简短的软文范例
  • 简述企业网站建设的目的有哪些/网站设计流程
  • 有专门做英文字幕的网站吗/搭建网站需要哪些步骤
  • 色91Av做爰网站/电子商务营销策划方案
  • 网络营销方案分析/seo项目经理
  • 做预售的网站/店铺推广方法
  • 成都网站建设兴田德润实力强/百度服务热线
  • 广告素材网站/昆明网络推广方式有哪些
  • app开发的网站/山东进一步优化
  • 发软文提高网站权重/外贸营销网站制作
  • wordpress 加速版/seo平台是什么
  • 手机网站建设公司联系电话/域名被墙检测
  • wordpress隐藏站点身份/爱站seo综合查询
  • 帮客户做插边球网站/中国新闻网发稿
  • 深圳有哪些网站公司/店铺引流的30种方法
  • 电子商务网站建设实训心得体会/谷歌网站网址
  • 东台网站网站建设/推广普通话手抄报句子
  • 番禺区大石做网站/b2b外贸平台