IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

设计模式(十九):访问者模式

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

68_1.png

优点:

  ① 可以在不改变各元素的类的前提下,定义作用于这些元素的新操作新状态,将元素和作用于元素之上的操作之间的耦合解脱开,使得操作可以相对集中和自由变化增减。

  ② 对于元素操作或状态,具有良好的灵活性和扩展性。

缺点:

  ① 增加新的对象结构(即对象元素)Element很困难,需要改动多。

适用范围:

  该模式适合于对象结构(即对象元素)相对稳定、且有易于变化的操作或状态的系统

客户端:

  ObjectStructure o = new ObjectStructure(); //对象结构
  o.add(new ConcreteElement1()); //男人
  o.add(new ConcreteElement2()); //女人

  Visitor success = new ConcreteVisitor1();//成功
  o.display(success); //展示

  Visitor fail = new ConcreteVisitor2();//失败
  o.display(fail); //展示

  Visitor love = new ConcreteVisitor3();//恋爱
  o.display(love); //展示

  //打印结果  

  男人成功时,背后多半有个伟大的女人
  女人成功时,背后大多有个不成功的男人
  男人失败时,闷头喝酒,谁也不用劝
  女人失败时,眼泪汪汪,谁也劝不了
  男人恋爱时,凡事不懂也要装懂
  女人恋爱时,遇事懂也装不懂

        /**
         * ObjectStructure  对象结构类(添加、删除和展示所有元素的方法)
         * Element 抽象的对象元素(获取元素状态的方法)
         * ConcreteElement1 男人 ConcreteElement2 女人  -- 元素实例化
         *
         * Visitor 元素状态抽象类(分别获知男人和女人状态的方法)
         * ConcreteVisitor1 成功状态(男女)  ConcreteVisitor2 失败状态(男女)  ConcreteVisitor3 恋爱状态(男女)  -- 实例化状态
         */

文章永久链接:https://tech.souyunku.com/?p=20277


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(70) 打赏



未经允许不得转载:搜云库技术团队 » 设计模式(十九):访问者模式

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367