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

天津建设网站的公司哪家好荆州哪个公司做网站

天津建设网站的公司哪家好,荆州哪个公司做网站,系统开发报价清单明细,app拉新任务平台装饰模式 为了不改变组件的结构#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.pierceye.com/news/317707/

相关文章:

  • wordpress添加短代码优化营商环境的金句
  • 网站访问统计js代码wordpress后台登陆不进去
  • dede 网站版权信息互联网平面设计
  • 可以做试卷的网站看书网站排名
  • seo网站关键词优化排名鄂州市网站
  • 哈尔滨网站域名归那里管网页版qq登录入口官网手机
  • 深圳建网站公司哪家好wordpress 采集系统
  • 网站发布与推广广州品牌网站设计公司
  • 帮忙做公司网站淘宝运营培训多少钱
  • 湘潭网站建设搭建WordPress多条件搜索
  • 信息技术 网站建设教案官网定制
  • 丽水专业网站建设公司淘宝美工培训推荐
  • 如何比较网站小程序商城开发平台
  • 品牌推广宣传词seo整站优化更能准确获得客户
  • 五八同城找工作招聘信息seo服务如何收费
  • 冒充it男给某网站做修复欧美专业牙科医院网站网页源码
  • 搭建网站需要做什么大型 视频网站开发
  • 济南招考院网站网站建设需要些什么东西
  • 手机怎么搭建网站厦门 做网站
  • 网站底部友情链接典型十大优秀网络营销案例
  • 公司装修工程免费推广软件平台seo博客
  • 树状结构的网站一个人可以做多少网站
  • 什么网站是专门做评论赚钱的响应式网站标准尺寸
  • 梅州市建设培训中心网站济南网上房地产
  • 海口网站提升排名专业做公司logo的网站
  • fm网站开发做网站自动赚钱
  • 网站二级导航制作wordpress找人做
  • 网站建设市场占有率网站开发工程师的职责
  • wordpress 单本小说站做网站前景
  • 只做网站可以在百度里收到吗平面设计是干嘛的