摘要:解释器模式 概述 : 给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子. 使用场景 : 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子.这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题. 解释器 阅读全文
posted @ 2018-11-15 15:27 vegatate 阅读(103) 评论(0) 推荐(0) 编辑
摘要:定义 封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。 看一下在类A中,方法method1和方法method2的区别在哪里,方法method1很简单,就是打印出一句“我是A”;方法method2稍微复杂一点,使用类B作为参数,并调用类B的show 阅读全文
posted @ 2018-11-15 11:02 vegatate 阅读(108) 评论(0) 推荐(0) 编辑
摘要:备忘录模式 概述:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样可以将对象恢复到原先保存的状态. 帮助理解:备忘录模式就是为对象提供一个备份的地方,当对象想要回滚到前一个状态时,调用备忘录对象直接就可以恢复. 备忘录模式说包含的角色 Originator : 原发器 阅读全文
posted @ 2018-11-12 17:16 vegatate 阅读(82) 评论(0) 推荐(0) 编辑
摘要:定义 在软件构建过程中,集合对象内部结构常常变化各异,但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为同一种算法在多种集合对象上进行操作提供了可能。 使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象” 阅读全文
posted @ 2018-11-09 16:58 vegatate 阅读(77) 评论(0) 推荐(0) 编辑
摘要:解释一下概念:也就是说在一个系统中如果有多个相同的对象,那么只共享一份就可以了,不必每个都去实例化一个对象。比如说一个文本系统,每个字母定一个对象,那么大小写字母一共就是52个,那么就要定义52个对象。如果有一个1M的文本,那么字母是何其的多,如果每个字母都定义一个对象那么内存早就爆了。那么如果要是 阅读全文
posted @ 2018-11-09 14:28 vegatate 阅读(87) 评论(0) 推荐(0) 编辑
摘要:先看看组合模式的定义吧:“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。” 就拿剪发办卡的事情来分析一下吧。 首先,一张卡可以在总部,分店,加盟店使用,那么总部可以刷卡,分店也可以刷卡,加盟店也可以刷卡,这个属性结构的店面层级关系就明确啦。 阅读全文
posted @ 2018-11-08 16:57 vegatate 阅读(247) 评论(0) 推荐(0) 编辑
摘要:概述 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模 阅读全文
posted @ 2018-11-08 16:05 vegatate 阅读(77) 评论(0) 推荐(0) 编辑
摘要:建造者模式 定义 : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.也就是说用户不需要知道一个复杂的对象时如何创建的.用户只需要知道使用构造不同对象的方法(Director)就能得到一个完整的复杂对象的实例 建造者模式通常包含的几个角色 Builder : 给出的一个抽 阅读全文
posted @ 2018-11-08 13:50 vegatate 阅读(105) 评论(0) 推荐(0) 编辑
摘要:在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就要使用桥接模式。而具体使用的方式,则是将抽象部分与他们的实现部分分离,使得它们都可以独立的变化。 手机,不 阅读全文
posted @ 2018-11-05 16:28 vegatate 阅读(76) 评论(0) 推荐(0) 编辑
摘要:在pycharm使用过程中,对于每次新建文件的shebang行和关于代码编写者的一些个人信息快捷填写,使用模板的方式比较方便。 方法如下: 1.打开pycharm,选择File-Settings 2.选择Editor--Color&Style--File ... 阅读全文
posted @ 2018-10-25 16:33 vegatate 阅读(106) 评论(0) 推荐(0) 编辑