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

做网站九州科技程序开发 网站开发

做网站九州科技,程序开发 网站开发,小红书网站建设内容,客户管理系统网站首先#xff0c;假设项目有个核心功能。 随着项目迭代#xff0c;又产生功能1和功能2 于是有如下需求#xff1a; 某个场景需要核心功能和功能1组合#xff0c; 某个场景需要核心功能和功能2组合#xff0c; 某个场景需要核心功能和功能1和功能2组合#xff0c; 甚至以后…首先假设项目有个核心功能。 随着项目迭代又产生功能1和功能2 于是有如下需求 某个场景需要核心功能和功能1组合 某个场景需要核心功能和功能2组合 某个场景需要核心功能和功能1和功能2组合 甚至以后有了功能3某个场景要核心功能和功能1和功能3组合。 那么这种情况就要使用装饰模式为已有核心功能按一定顺序动态增加其他功能。 使用装饰模式优点在于区分核心功能和其他装饰功能。而且按照装饰模式的套路写可以将功能的组装看成一条链一个个的将各个功能动态的穿起来。 具体实现 下面举个例子 比如一辆车核心功能就是跑起来。 同时我们再为车装饰一些牛逼的其他功能 比如功能1就是飞起来 功能2就是游泳 功能3就是跳起来 接下来我们使用装饰模式来将这些功能一个个的装饰在这辆车上。 也可以先看后面代码照着代码再看下面的步骤 第一步 我们需先定义一个接口ICar有两个方法一个是show一个是run show方法就是用于以后多个装饰器之间的连接run方法就是核心的跑方法。 第二步 定义一个类RunICar实现接口ICar这就是辆真正的车了。 重写run方法里面就是具体的核心实现。 重写show方法里面只做一件事就是调用run方法。 至此一个初期的车就做出来了。 第三步 定义一个抽象类ICarDecoeator实现接口ICar这个抽象类就是我们所说的装饰类的抽象类。 抽象类中定义一个成员变量ICar引用是个接口具体是哪个实现类就看传哪个实现类了也是为了后续调用ICar的方法就直接调到传的那个实现类中了。 再定义一个有参构造方法入参就是接口ICar实现就是将入参赋给类中的成员变量ICar。 第四步 这下就是真正的装逼功能的实现了。 定义类FlyDecorator继承第三步中的抽象类ICarDecoeator 定义有参构造方法传入ICar并传给父类即super(iCar) 定义本类的装饰功能比如创建方法fly()具体实现就是飞起来 同时重写run方法和show方法。 run方法可以为空 重点是show方法这可是装饰模式的精髓所在。 show方法有两步第一步是获取ICar引用并调用iCar的show方法这样就相当于传进来的ICar的调用也就是这一步才让装饰模式真正的链起来了。 show的第二部是调用自己特有的方法fly()。 第五步 同第四步再定义实现类SwinDecorator继承ICarDecoeator 定义有参构造方法传入ICar并传给父类即super(iCar) 定义本类的装饰功能比如创建方法swin()具体实现就是游泳 同时重写run方法和show方法。 run方法可以为空 show也是先获取父类成员变量ICar并调用show方法。再调用自己的方法swin() 第六步 同第四步再定义实现类JumpDecorator继承ICarDecoeator 定义有参构造方法传入ICar并传给父类即super(iCar) 定义本类的装饰功能比如创建方法jump()具体实现就是跳起来 同时重写run方法和show方法。 run方法可以为空 show也是先获取父类成员变量ICar并调用show方法。再调用自己的方法jump() 第七步 第四五六步都是装饰的附加功能至此所有准备工作就完了 第七步来测试下。 先来个核心功能RunICar车就能跑了。 如果再想实现飞的功能就new一个FlyDecorator并将RunICar传入FlyDecorator的有参构造调用show方法即可。 如果不但想跑想飞还想游泳就再new一个SwinDecorator并将FlyDecorator传入SwinDecorator的有参构造调用show方法即可。 如果不但想跑想飞想游泳还想跳就再new一个JumpDecorator并将之前能跑能飞能游泳的SwinDecorator传入JumpDecorator的有参构造调用show方法即可。 接下来是代码示例 public interface ICar {public void show();public void run();}public class RunICar implements ICar {Overridepublic void show() {this.run();}Overridepublic void run() {//核心功能实现System.out.println(车辆可以跑);} }public abstract class ICarDecoeator implements ICar {//2.抽象装饰类包含抽象组件的一个引用。作用装饰类给传递进来的组件添加新的功能private ICar icar;//有参构造方法用于获取组件public ICarDecoeator(ICar icar) {super();this.icar icar;}public ICar getIcar() {return icar;}public void setIcar(ICar icar) {this.icar icar;} }public class FlyDecorator extends ICarDecoeator {public FlyDecorator(ICar icar) {super(icar);}public void fly() {System.out.println(车辆可以飞);}public void show() {this.getIcar().show();this.fly();}Overridepublic void run() {} }public class SwinDecorator extends ICarDecoeator {public SwinDecorator(ICar icar) {super(icar);}public void swin() {System.out.println(可以潜水);}Overridepublic void run() {}Overridepublic void show() {this.getIcar().show();this.swin();} }public class JumpDecorator extends ICarDecoeator {public JumpDecorator(ICar iCar){super(iCar);}Overridepublic void show() {this.getIcar().show();this.jump();}public void jump(){System.out.println(车可以跳);}Overridepublic void run() {} } public class DecoratorMain {public static void main(String[] args) {/**使用装饰模式给具体组件添加功能。在用户需要什么功能就将具体组件作为参数传递为具体装饰类。客户端在调用时是以透明的方式扩展对象功能是继承关系的一种替换。*/ICar icar new RunICar();ICar flyicar new FlyDecorator(icar);flyicar.show();//跑飞System.out.println(------------);ICar swinicar new SwinDecorator(icar);swinicar.show();//跑游System.out.println(-----------);ICar swin new SwinDecorator(flyicar);swin.show();//跑飞游System.out.println(-----------);ICar flyDecorator new FlyDecorator(swinicar);flyDecorator.show();//跑游飞System.out.println(------------);ICar jumpDecorator new JumpDecorator(flyDecorator);jumpDecorator.show();//跑游飞跳} }
http://www.pierceye.com/news/913948/

相关文章:

  • 电子商务网站开发 ppt湛江做网站报价
  • 网站建设框架图wordpress 固定链接设置
  • 内蒙古工程建设协会网站seo文章外包
  • 网站建设免费的服务器商丘推广公司
  • 网站设计大概价格设计网络平台的公司
  • phpcms中的网站介绍页中文去掉wordpress
  • 网站的建设心得怎么做网站淘宝转换工具
  • 做网站1天转多钱wordpress 分享插件
  • 淘宝网站建设单子好接吗朝阳区办公
  • html5网站建设平台怎么给网站添加图标
  • 中文域名网站网站制作wap页面
  • wordpress站内全文检索一个人完成网站建设
  • wordpress自定义重用结构北京seo怎么优化
  • 苏州做网站专业的公司vs2008怎么做网站
  • 效果好的徐州网站建设休闲食品网站建设策划书
  • 如何发布自己的网站wordpress 4.9.6 下载
  • 织梦网站打开慢企业咨询师资格证
  • 蓬莱网站建设哪家好广州白云网站建设
  • 网站建设得花多少钱做购物网站能否生存
  • 多语言网站 用什么cms深圳Wordpress网站
  • 常州市建设工程质量监督站网站开发公司设计管理岗位述职
  • 国外网站顶部菜单设计谷歌seo文章
  • 梅州网站开发外国自适应企业网站
  • 大型网站建设动力无限哪个公司的装饰设计公司
  • 网站建设与管理自考wordpress替换默认的编辑器
  • 企业在网站推广咸阳做网站开发公司
  • 从美洲开始做皇帝免费阅读网站wordpress嵌入优酷视频播放
  • 长沙 外贸网站建设国际足联世界排名
  • 辽宁省建设执业继续教育协会网站深圳网站制作建设服务公司
  • 个人网站备案都需要什么运营seo是什么意思