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

网站tdk优化一般通过逸民

网站tdk优化,一般通过逸民,百度优化师,html嵌入网站装饰模式 为了不改变组件的结构#xff0c;动态地扩展其功能。 通常#xff0c;扩展功能通过子类进行#xff0c;但是继承的方式具有静态特征#xff0c;耦合度高。 意图#xff1a;动态地给对象添加额外的功能 主要解决#xff1a;继承方式是静态特征#xff0c;扩…装饰模式 为了不改变组件的结构动态地扩展其功能。 通常扩展功能通过子类进行但是继承的方式具有静态特征耦合度高。 意图动态地给对象添加额外的功能 主要解决继承方式是静态特征扩展的功能多的时候子类会太膨胀 何时使用不想增加很多子类的时候扩展类 1 假设情景 一个宝可梦可以睡觉吃饭放技能如果要扩展它的行为比如Mega进化后假设有专属的Mega技能然后极巨化可以放极巨技能。 宝可梦接口抽象组件Component public interface Pokemon {void sleep();void eat();void spell(); }**宝可梦实现类**具体组件Concrete Component 有皮卡丘和菊草叶两种实现类作为具体的组件 public class Pikachu implements Pokemon{Overridepublic void sleep() {System.out.println(Pikachu is sleeping...);}Overridepublic void eat() {System.out.println(Pikachu is eating...);}Overridepublic void spell() {System.out.println(Pikachu is spelling...);} }public class Chikorita implements Pokemon{Overridepublic void sleep() {System.out.println(Chikorita is sleeping...);}Overridepublic void eat() {System.out.println(Chikorita is eating...);}Overridepublic void spell() {System.out.println(Chikorita is spelling...);} }**宝可梦变化装饰器**抽象装饰Decorator 用抽象类方便扩展多种装饰以应对宝可梦可能有的多种变化 abstract class PokemonDecorator implements Pokemon{Pokemon pokemon;public PokemonDecorator(Pokemon pokemon) {this.pokemon pokemon;}Overridepublic void sleep() {pokemon.sleep();}Overridepublic void eat() {pokemon.eat();}Overridepublic void spell() {pokemon.spell();} }**宝可梦具体变化**具体装饰Concrete Decorator 实现了Mega进化和极巨化两种变化 public class MegaPokemon extends PokemonDecorator{public MegaPokemon(Pokemon pokemon) {super(pokemon);}public void megaSpell(){super.spell();System.out.println(Mega Power!);} }public class DymaxPokemon extends PokemonDecorator{public DymaxPokemon(Pokemon pokemon) {super(pokemon);}public void dymaxSpell(){super.spell();System.out.println(Dymax Power!);} }测试类 public class DecoratorDemo {public static void main(String[] args) {Pokemon chikorita new Chikorita();Pikachu pikachu new Pikachu();DymaxPokemon dymaxPikachu new DymaxPokemon(pikachu);MegaPokemon megaPikachu new MegaPokemon(pikachu);MegaPokemon megaChikorita new MegaPokemon(chikorita);pikachu.spell();dymaxPikachu.dymaxSpell();megaPikachu.megaSpell();megaChikorita.megaSpell();} }Pikachu is spelling... Pikachu is spelling... Dymax Power! Pikachu is spelling... Mega Power! Chikorita is spelling... Mega Power!至此再回头看是否实现我们的意图动态地给一个对象添加一些额外的职责。 2 吐槽 本来宝可梦只有吃饭睡觉放技能但是随着版本更迭宝可梦还增加了Mega进化极巨化在不用子类扩展的情况下可以使用装饰模式当需要扩展新功能的时候比如在朱紫版本增加了太晶化我们只需要新写一个PokemonDecorator的子类CrystalPokemon实现新功能不还是用子类扩展了吗。。。所以装饰模式的缺点就是装饰类太多的时候比较复杂。。。
http://www.huolong8.cn/news/136527/

相关文章:

  • 北仑网站网页建设wordpress4
  • 网站搭建费用明细二手房网站制作教程
  • 网站建设企业文化番号网站怎么做
  • my eclipse网站开发建设企业功能型网站
  • 可以在线制作网页的网站品牌网站查询
  • 建网站用什么工具印度域名注册网站
  • wordpress企业站主题下载浙江省通信管理局 网站备案
  • 重庆品牌型网站建设多少钱站长工具查询网站
  • 网站用什么字体建设手机银行
  • 做网站给文件不侵权腾讯云建站平台
  • 网页设计网站规划报告建立网站的方案
  • wordpress设置登陆口seo模拟点击算法
  • 二手房网站建设注册域名在哪里注册
  • 如何做双语网站wordpress 目录404
  • 维护网站建设空间出租什么是跨境电商主要做什么
  • 建设厅投诉网站首页做网站公司信科建站免费
  • 电影网站怎么做seo网站加载优化
  • 域名 备案 没有网站吗wordpress放视频
  • 做网络主播网站违法吗恢复118网址之家
  • 纸牌网站建设深鑫辉网站建设
  • 巴中市网站建设深圳火狼设计公司招聘网站
  • 有网站公司源码可以重建网站吗厦门专业网站设计公司
  • 邵武网站建设wzjseowordpress技术cms主题
  • 网站模版源代码西宁做网站最好的公司哪家好
  • ASP个人网站的建设晋中营销型网站建设
  • 网站二次开发合同郑州网站优化汉狮网络
  • 专业网站建设专业网站设计黄骅市旅游景点
  • 谷歌可以做网站吗汕头建设有限公司
  • 门户网站的细分模式有女生学软件技术怎么样
  • php怎么做直播网站吗wordpress随机广告