设计模式--新增有关模式思考

  • P122 通过聚合对象的返回迭代器方法返回的迭代器,每次返回的都是一个新的迭代器,即指针开始都是0,因为该方法每次都新创建一个迭代器方法并用list初始化他。使用的最终产品是聚合对象方法返回的迭代器。迭代器还可以自定义遍历方法,这个根据需要自己实现。
  • P127 访问说白了就是数据结构中存储的元素的算法,访问是对这些元素执行算法操作,通过结构类专门存储具体元素,而所有的算法存储在访问者类中,这样的好处就是不同于以往的数据结构现在的算法可以根据存储的元素来选择算法,例如栈里面不会因为他存储的是猫类或者狗类执行对应的算法。且把算法单独放在访问者中有利于在操作多变时替换算法,通过结构类的特定方法如本例中的action来装入具体的访问者来决定使用什么算法,或者用什么形式访问。
  • P131 窄接口如何实现:由于JAVA多态机制,用基类指针指向子类,当调用去其方法时只能调用基类中有的方法,而这些方法的具体实现取决于子类,所以在备忘录管理者中用一个空方法的接口来接受备忘录,该引用只能保存但不能调用任何方法,以达到窄的目的。当从管理类中获取备忘录时还需要强转,因为此时他是基类类型。
  • P131 为什么窄接口的备忘录类要声明成内部类?因为防止其他类直接定义他的变量。内部类是随外部类产生,随他而消亡的,因此无法被外界调用。当然这个内部类还要定义成私有才行。
  • P135 该例解释器模式中加法的参数也为context,是想通过同一继承数的类之间同名方法的递归调用来获得左或右操作数表达式的值。该例中的variable就是终结符类,加法和减法是非终结符类。
  • P128 为什么双分派中不会出现在调用重载方法时只调用参数为接口的方法?因为this指针,他作为形参传入时,声明类型是本类型而不是接口类型。
  • P19 迪米特法则想说的是如果两个类可以不直接通讯,而不是无须通讯,我感觉视频里写的不对。

  设计模式通常是把原本是朋友的类变成陌生人,把可以不直接通讯的类变成不直接通讯的。

 
posted @   薛定谔的小冰  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示