07 2019 档案
摘要:策略模式、接口的直接使用 模板方法模式、虚函数的组合使用。 观察者模式、多个回调。 迭代子模式、组合优于继承的典范 责任链模式,就像链条一样,勾住一个和自己一样具有勾住一个和自己一样的链条能力的链条。 命令模式、 行为类附加了执行对象。反过来的接口,符合一些特殊场景。 备忘录模式、保存关键数据。 状
阅读全文
摘要:基本上就是必须把元素和句子,都要是为符号。所以需要一个他们的抽象类。就可以出来解释器模式了。为什么元素和句子要一个通用意图?因为解释器的句子,可能就是某个句子的符号。 整个代码就是树结构。任何一个点都是一个树。个人感觉,基本不会自己独立去实现这个模式,java,c#都是一种更高级语言,如果非要开启解释模式,那么肯定可以找到某一领域的库,或者干脆换个专用的语言就好了。. //感觉解释器模式的难点在...
阅读全文
摘要:是我没有理解正确还是?这个模式为什么要单独出来。不就是状态模式的广度增加版而已嘛? 个人感觉非常少的合适的场景。看状态模式就好了。一样的思想。 多个状态的状态模式 =》多个元素需要分别处理状态=》多个元素需要有各自的操作=》访问者模式。
阅读全文
摘要:模板模式是非常容易看懂的。以前用了所谓的桥接模式,我也会认为我用了模板模式。 其实把桥接模式叫做 模板模式的接口版也没有任何问题。 模板模式全部虚函数,固定起来。而桥接模式。加了一个接口。把意图的实现放的更自由,脱离了虚类。 但是又如何啊。桥接多难懂的一个词。我想叫桥接模式为自由的模板模式。 个人总
阅读全文
摘要:用了也不知道用了的典型。 就是接口存在的意义,意图和实现分离。 就好像1+1=2,实现了一个简单加法一样。。。
阅读全文
摘要:v2第二次复习:基本上看第一次总结,是正确的,还有一个补充就是,如果状态的判定又涉及到多个字段的话,那么用状态模式的附带的好处就是把状态用单独key表示出来了。就是每个状态的派生类。这样更简洁。另外状态类,都是包含行为的,而行为一般是会对状态类的母体做修改。所以状态类的方法一般会传递this过去。 第一次学习官方的一句话:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的...
阅读全文
摘要:就是存档。把关键数据,存在一个列表中。所以需要一个存档中心类,一个执行存档的类。和一个被存档的类。 可以和命令模式,配合。并加上原型。会比较配。
阅读全文
摘要:比较简单,现实例子太常见了。 比如租房,如果没有房屋中介,你必须亲自各个小区自己转,找房东的电话。 而有中介了,你找中介一个就可以了,就可以和其他房东联系。 有句总结说的很好,把网状的关系,化为了更简单的中心发散关系。
阅读全文
摘要:重要的思想:对容器项目遍历从容器本身中分离出来,而放入单独的迭代器中。 其实有种java内部类的意思。 个人总结,迭代器非常简单直接,超级实用,但是一般流行语言,容器都已经实现了。list, array. 等都已经实现了。 其他大部分实际开发中不用的模式都是因为场合少,这个是个反例,是因为实在太实用
阅读全文
摘要:命令模式总不得要领。 做了3次迭代。 个人直觉,这个模式不会太常用,完全可以用数字或字符来代替命令, 解耦和简洁之间并非每次都是解耦胜出。 做菜这个场合,我站简洁。也可能网上例子都是做菜,所以才会让人觉得命令模式没有必要。应该是例子本来就不适合标准的命令模式。要不是 GOF他们4个人设计过度。 而且
阅读全文
摘要:虚类中包含一个自己的同类对象叫nextChain。重载方法中判断是否是自己应该处理的,并转给nextChain.这样一层一层。。。。 可以用管理类+数组来代替。 当然很明显职责链类少。简杰不简单。 至少学会这个可以更快看懂别人代码。 而管理类+数组,简单。没毛病。 个人感觉,有适合的地方,可以用。因
阅读全文
摘要:也是简单的概念。 一个类,包含一个需要代理的对象的接口。 操作代理类,会执行实际的对象。 难点不在于代理模式,而是为什么要代理。肯定是因为不能直接使用,或无法直接使用。 所以难带反而在于代理模式如何去实现和需要代理对象之间的沟通。代理模式反而是最简单的。
阅读全文
摘要:还是要吐槽一下,太多翻译,让人无语,叫共享微粒,或者直接微粒,为什么叫享元?享单独一个词,国人惯例必定是享受的的意思。算了,翻译也不容易。 还是没办法,希望国人多多发明自己的技术,而不是翻译别人。导致学习规模比英文世界的人大。 意图:运用共享技术有效地支持大量细粒度的对象 感觉没什么好说。就是共享。
阅读全文
摘要:开发代码的时候会经常用到。 有时候写好了很多基础库。 开始使用这些库来完成某个复杂功能的时候,如果实现某个功能,需要这些基础库之间交互太繁多。而我们明显只想调用一个方法。 那么一般可以先假设调用一个方法及其参数。 在这个方法中会去交互基础库。并把这个方法放入到一个类中。就是类就是外观类。
阅读全文
摘要:第三次复习 场景: 通常情况下,扩展一个类的功能会使用继承方式来实现。但继承具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。 如果使用组合关系来创建一个包装对象(即装饰对象)来包裹真实对象,并在保持真实对象的类结构不变的前提下,为其提供额外的功能, 这就是装饰器模式的目标。 要清楚,此
阅读全文
摘要:恩。很少用到的模式。 基本高级语言,都包含了基本的数据结构。如树,map。list. 所以感觉组合模式。在高级语言基本不会用到。
阅读全文
摘要:看下他的接口,实在没什么好说。 输入,输出都是集合。 简单,明了,目的明确。 public interface Criteria { public List<Person> meetCriteria(List<Person> persons);}
阅读全文
摘要:GOF取的名字,有时候名字比模式本身更难懂。 有的如模板模式,都不用看代码,就知道这个模式是做什么的。 而这个bridge,。。看名字,无法知道它想做什么。 无语。看了几次,没看懂。今天看懂了,发现以前用过很多次了。 一句话就是 虚类的虚方法里面又调用了接口的方法,用接口的多态和虚函数的多态来组合多
阅读全文
摘要:适配器模式非常简单。就是建立一个适配器。 把一个现有的类的对象包含过来,利用现有对象的方法,做一些改动。来满足现在的新需求。 这也是组合思想的最简单的实践。 而android 的adapter.完全不是设计模式的adapter的意思。 可见不一定要满足设计模式的东西才能叫适配器。 google 就把
阅读全文
摘要:就是clone,就是copy一份自己。 这个倒是非常有用处。很多时候希望用某个数据去测试,又不影响原来数据。那么就需要 克隆。可是原型这个词有点吓人。叫克隆多好。 高级语言,如java的默认clone,对于集合类型是只copy指针。所以需要自己重写clone方法。实现深拷贝。也就是原型。 创建型模式
阅读全文
摘要:建造者模式是非常自然的想法。 把变化的部分,用接口表示。 也就是ibulider. 之后传入不同的builder. 并调用builder的方法。 这个也叫模式? 就是接口的使用啊。 有点像模板方法。 模板方法是继承虚类,重写虚方法。 这里是实现接口。并传递进去。
阅读全文
摘要:最简单的反而最常用,用处最大,也一定不会是为了格调高而高。 个人总结,很实用:屏蔽构造函数。 用静态方法,返回静态的自己。
阅读全文
摘要:第二次体会:让使用对象的一端,不需要知道对象的具体类名,只需要知道工厂类名。随便你对象类如何变化。所以工厂模式不是基本碰不到。而是非常实用。如果需要的一个对象会变动。那么可以用工厂类来隔离变化。把变化放到工厂类中,而调用方只需要知道对外稳定的工厂类就可以。当你面对一个会常修改的类,可以用工厂模式,让变化隔离到工厂类。代码 package com.linson.android.hiandroid2...
阅读全文
摘要:一。是什么 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 二。为什么需要设计模式 第一原则,也是终极原则必须知道:对修改关闭,对扩展开放。叫做增闭原则更容易理解。因为大部分扩展都是增加的动作。 关闭了还想扩展,如何做到,请说人话。 说人
阅读全文
摘要:先记录2种最常见的组合。 1.自定义控件 this + true. LayoutInflater.from(context).inflate(R.layout.item_onetextview, this, true); 2.定义 列表的 item View view=LayoutInflater.
阅读全文

浙公网安备 33010602011771号