From a329691f8a6a25d4285e71ae5ed944aac01de0bb Mon Sep 17 00:00:00 2001 From: "binpeng.liu" Date: Thu, 2 Nov 2023 16:06:38 +0800 Subject: [PATCH] feature: design patter --- Chapter6 - Design Pattern/6.14.md | 3 +- Chapter6 - Design Pattern/6.2.md | 2 +- Chapter6 - Design Pattern/6.20.md | 4 +- Chapter6 - Design Pattern/6.24.md | 302 ++++++++++++++++++++++ Chapter6 - Design Pattern/6.25.md | 131 ++++++++++ Chapter6 - Design Pattern/6.26.md | 320 ++++++++++++++++++++++++ Chapter6 - Design Pattern/6.27.md | 159 ++++++++++++ Chapter6 - Design Pattern/6.28.md | 94 +++++++ Chapter6 - Design Pattern/6.29.md | 138 ++++++++++ Chapter6 - Design Pattern/6.30.md | 163 ++++++++++++ Chapter6 - Design Pattern/6.31.md | 36 +++ SUMMARY.md | 9 +- assets/IteratorPatter-structure.png | Bin 0 -> 54562 bytes assets/Mediator-Pattern-advantage.png | Bin 0 -> 81744 bytes assets/StateMachine-TabMethod.png | Bin 0 -> 49120 bytes assets/StateMachinePatter-Mariogame.png | Bin 0 -> 83563 bytes 16 files changed, 1355 insertions(+), 6 deletions(-) create mode 100644 Chapter6 - Design Pattern/6.24.md create mode 100644 Chapter6 - Design Pattern/6.25.md create mode 100644 Chapter6 - Design Pattern/6.26.md create mode 100644 Chapter6 - Design Pattern/6.27.md create mode 100644 Chapter6 - Design Pattern/6.28.md create mode 100644 Chapter6 - Design Pattern/6.29.md create mode 100644 Chapter6 - Design Pattern/6.30.md create mode 100644 Chapter6 - Design Pattern/6.31.md create mode 100644 assets/IteratorPatter-structure.png create mode 100644 assets/Mediator-Pattern-advantage.png create mode 100644 assets/StateMachine-TabMethod.png create mode 100644 assets/StateMachinePatter-Mariogame.png diff --git a/Chapter6 - Design Pattern/6.14.md b/Chapter6 - Design Pattern/6.14.md index 3cdf4dc..203729e 100644 --- a/Chapter6 - Design Pattern/6.14.md +++ b/Chapter6 - Design Pattern/6.14.md @@ -6,8 +6,7 @@ 这其中“最纯正”的理解方式,当属 GoF 的《设计模式》一书中对桥接模式的定义。毕竟,这 23 种经典的设计模式,最初就是由这本书总结出来的。在 GoF 的《设计模式》一书中,桥接模式是这么定义的:“Decouple an abstraction from its implementation so that the two can vary independently。”翻译成中文就是:“**将抽象和实现解耦,让它们可以独立变化**” -很多书籍、资料中,还有另外一种理解方式:“一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展。”通 -过组合关系来替代继承关系,避免继承层次的指数级爆炸。这种理解方式非常类似于,我们之前讲过的“组合优于继承”设计原则 +很多书籍、资料中,还有另外一种理解方式:“一个类存在两个(或多个)独立变化的维度,我们通过组合的方式,让这两个(或多个)维度可以独立进行扩展。”通过组合关系来替代继承关系,避免继承层次的指数级爆炸。这种理解方式非常类似于,我们之前讲过的“组合优于继承”设计原则 GoF 给出的定义非常的简短,单凭这一句话,估计没几个人能看懂是什么意思。所以,我们通过 JDBC 驱动的例子来解释一下。JDBC 驱动是桥接模式的经典应用。我们先来看一下,如何利用 JDBC 驱动来查询数据库。具体的代码如下所示 ``` diff --git a/Chapter6 - Design Pattern/6.2.md b/Chapter6 - Design Pattern/6.2.md index 3f8b414..b1efcf2 100644 --- a/Chapter6 - Design Pattern/6.2.md +++ b/Chapter6 - Design Pattern/6.2.md @@ -81,7 +81,7 @@ public class Ostrich extends AbstractBird { // 鸵鸟 这种设计思路虽然可以解决问题,但不够优美。因为除了鸵鸟之外,不会飞的鸟还有很多,比如企鹅。对于这些不会飞的鸟来说,我们都需要重写 fly() 方法,抛出异常。这样的设计,一方面,徒增了编码的工作量;另一方面,也违背了我们之后要讲的最小知识原则(Least Knowledge Principle,也叫最少知识原则或者迪米特法则),暴露不该暴露的接口给外部,增加了类使用过程中被误用的概率。 你可能又会说,那我们再通过 AbstractBird 类派生出两个更加细分的抽象类:会飞的鸟类 AbstractFlyableBird 和不会飞的鸟类 AbstractUnFlyableBird,让麻雀、乌鸦这些会飞的鸟都继承 AbstractFlyableBird,让鸵鸟、企鹅这些不会飞的鸟,都继承 AbstractUnFlyableBird 类,不就可以了吗?具体的继承关系如下图所示: -![](./../assets/oop-mixBetterThanSuper.png) +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/oop-mixBetterThanSuper.png) 从图中我们可以看出,继承关系变成了三层。不过,整体上来讲,目前的继承关系还比较简单,层次比较浅,也算是一种可以接受的设计思路。我们再继续加点难度。在刚刚这个场景中,我们只关注“鸟会不会飞”,但如果我们还关注“鸟会不会叫”,那这个时候,我们又该如何设计类之间的继承关系呢? diff --git a/Chapter6 - Design Pattern/6.20.md b/Chapter6 - Design Pattern/6.20.md index 47ccd4e..0b72a37 100644 --- a/Chapter6 - Design Pattern/6.20.md +++ b/Chapter6 - Design Pattern/6.20.md @@ -282,8 +282,8 @@ public DObserver { ## 实现 EventBus 框架 EventBus 中两个核心函数 register() 和 post() 的实现原理。弄懂了它们,基本上就弄懂了整个 EventBus 框架。下面两张图是这两个函数的实现原理图。 -![](./../assets/EventBus-ObserverRegisterTable.png) -![](./../assets/EventBus-Post.png) +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/EventBus-ObserverRegisterTable.png) +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/EventBus-Post.png) 最关键的一个数据结构是 Observer 注册表,记录了消息类型和可接收消息函数的对应关系。当调用 register() 函数注册观察者的时候,EventBus 通过解析 @Subscribe 注解,生成 Observer 注册表。 diff --git a/Chapter6 - Design Pattern/6.24.md b/Chapter6 - Design Pattern/6.24.md new file mode 100644 index 0000000..4db2b42 --- /dev/null +++ b/Chapter6 - Design Pattern/6.24.md @@ -0,0 +1,302 @@ +# 状态模式 + +状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有分支逻辑法和查表法。今天,我们就详细讲讲这几种实现方式 + +## 什么是状态机? +状态机也叫有限状态机,英文翻译是 Finite State Machine,缩写为 FSM,简称为状态机。状态机有3 个组成部分:状态(State)、事件(Event)、动作(Action)。其中,事件也称为转移条件(Transition Condition)。事件触发状态的转移及动作的执行。不过,动作不是必须的,也可能只转移状态,不执行任何动作 + +超级马里奥”游戏不知道你玩过没有?在游戏中,马里奥可以变身为多种形态,比如小马里奥(Small Mario)、超级马里奥(Super Mario)、火焰马里奥(Fire Mario)、斗篷马里奥(Cape Mario)等等。在不同的游戏情节下,各个形态会互相转化,并相应的增减积分。比如,初始形态是小马里奥,吃了蘑菇之后就会变成超级马里奥,并且增加 100 积分。 + +实际上,马里奥形态的转变就是一个状态机。其中,马里奥的不同形态就是状态机中的“状态”,游戏情节(比如吃了蘑菇)就是状态机中的“事件”,加减积分就是状态机中的“动作”。比如,吃蘑菇这个事件,会触发状态的转移:从小马里奥转移到超级马里奥,以及触发动作的执行(增加 100 积分) + +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/StateMachinePatter-Mariogame.png) + +``` +public enum State { + SMALL(0), + SUPER(1), + FIRE(2), + CAPE(3); + private int value; + private State(int value) { + this.value = value; + } + public int getValue() { + return this.value; + } +} + +public class MarioStateMachine { + private int score; + private State currentState; + public MarioStateMachine() { + this.score = 0; + this.currentState = State.SMALL; + } + public void obtainMushRoom() { + //TODO + } + public void obtainCape() { + //TODO + } + public void obtainFireFlower() { + //TODO + } + public void meetMonster() { + //TODO + } + public int getScore() { + return this.score; + } + public State getCurrentState() { + return this.currentState; + } +} + +public class ApplicationDemo { + public static void main(String[] args) { + MarioStateMachine mario = new MarioStateMachine(); + mario.obtainMushRoom(); + int score = mario.getScore(); + State state = mario.getCurrentState(); + System.out.println("mario score: " + score + "; state: " + state); + } +} +``` + +## 实现 + +### 方法1:分支逻辑法 +对于如何实现状态机,我总结了三种方式。其中,最简单直接的实现方式是,参照状态转移图,将每一个状态转移,原模原样地直译成代码。这样编写的代码会包含大量的 if-else 或 switch-case 分支判断逻辑,甚至是嵌套的分支判断逻辑,所以,我把这种方法暂且命名为分支逻辑法 +``` +public class MarioStateMachine { + private int score; + private State currentState; + public MarioStateMachine() { + this.score = 0; + this.currentState = State.SMALL; + } + public void obtainMushRoom() { + if (currentState.equals(State.SMALL)) { + this.currentState = State.SUPER; + this.score += 100; + } + } + public void obtainCape() { + if (currentState.equals(State.SMALL) || currentState.equals(State.SUPER) ) + this.currentState = State.CAPE; + this.score += 200; + } + } + public void obtainFireFlower() { + if (currentState.equals(State.SMALL) || currentState.equals(State.SUPER) ) + this.currentState = State.FIRE; + this.score += 300; + } + } + public void meetMonster() { + if (currentState.equals(State.SUPER)) { + this.currentState = State.SMALL; + this.score -= 100; + return; + } + if (currentState.equals(State.CAPE)) { + this.currentState = State.SMALL; + this.score -= 200; + return; + } + if (currentState.equals(State.FIRE)) { + this.currentState = State.SMALL; + this.score -= 300; + return; + } + } + public int getScore() { + return this.score; + } + public State getCurrentState() { + return this.currentState; + } +} +``` +对于简单的状态机来说,分支逻辑这种实现方式是可以接受的。但是,对于复杂的状态机来说,这种实现方式极易漏写或者错写某个状态转移。除此之外,代码中充斥着大量的 if-else 或者 switch-case 分支判断逻辑,可读性和可维护性都很差。如果哪天修改了状态机中的某个状态转移,我们要在冗长的分支逻辑中找到对应的代码进行修改,很容易改错,引入 bug。 + +### 方法2:查表法 +上面这种实现方法有点类似 hard code,对于复杂的状态机来说不适用,而状态机的第二种实现方式查表法,就更加合适了。接下来,我们就一块儿来看下,如何利用查表法来补全骨架代码。 + +实际上,除了用状态转移图来表示之外,状态机还可以用二维表来表示,如下所示。在这个二维表中,第一维表示当前状态,第二维表示事件,值表示当前状态经过事件之后,转移到的新状态及其执行的动作 +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/StateMachine-TabMethod.png) +相对于分支逻辑的实现方式,查表法的代码实现更加清晰,可读性和可维护性更好。当修改状态机时,我们只需要修改 transitionTable 和 actionTable 两个二维数组即可。实际上,如果我们把这两个二维数组存储在配置文件中,当需要修改状态机时,我们甚至可以不修改任何代码,只需要修改配置文件就可以了 + +``` +public enum Event { + GOT_MUSHROOM(0), + GOT_CAPE(1), + GOT_FIRE(2), + MET_MONSTER(3); + private int value; + private Event(int value) { + this.value = value; + } + public int getValue() { + return this.value; + } +} +public class MarioStateMachine { + private int score; + private State currentState; + private static final State[][] transitionTable = { + {SUPER, CAPE, FIRE, SMALL}, + {SUPER, CAPE, FIRE, SMALL}, + {CAPE, CAPE, CAPE, SMALL}, + {FIRE, FIRE, FIRE, SMALL} + }; + private static final int[][] actionTable = { + {+100, +200, +300, +0}, + {+0, +200, +300, -100}, + {+0, +0, +0, -200}, + {+0, +0, +0, -300} + }; + public MarioStateMachine() { + this.score = 0; + this.currentState = State.SMALL; + } + public void obtainMushRoom() { + executeEvent(Event.GOT_MUSHROOM); + } + public void obtainCape() { + executeEvent(Event.GOT_CAPE); + } + public void obtainFireFlower() { + executeEvent(Event.GOT_FIRE); + } + public void meetMonster() { + executeEvent(Event.MET_MONSTER); + } + private void executeEvent(Event event) { + int stateValue = currentState.getValue(); + int eventValue = event.getValue(); + this.currentState = transitionTable[stateValue][eventValue]; + this.score = actionTable[stateValue][eventValue]; + } + public int getScore() { + return this.score; + } + public State getCurrentState() { + return this.currentState; + } +} +``` +### 方法3: 状态模式 +在查表法的代码实现中,事件触发的动作只是简单的积分加减,所以,我们用一个 int 类型的二维数组 actionTable 就能表示,二维数组中的值表示积分的加减值。但是,如果要执行的动作并非这么简单,而是一系列复杂的逻辑操作(比如加减积分、写数据库,还有可能发送消息通知等等),我们就没法用如此简单的二维数组来表示了。这也就是说,查表法的实现方式有一定局限性 + +虽然分支逻辑的实现方式不存在这个问题,但它又存在前面讲到的其他问题,比如分支判断逻辑较多,导致代码可读性和可维护性不好等。实际上,针对分支逻辑法存在的问题,我们可以使用状态模式来解决。 + +状态模式通过将事件触发的状态转移和动作执行,拆分到不同的状态类中,来避免分支判断逻辑。我们还是结合代码来理解这句话 + +其中,IMario 是状态的接口,定义了所有的事件。SmallMario、SuperMario、CapeMario、FireMario 是 IMario 接口的实现类,分别对应状态机中的 4 个状态。原来所有的状态转移和动作执行的代码逻辑,都集中在 MarioStateMachine 类中,现在,这些代码逻辑被分散到了这 4 个状态类中 + +``` +public interface IMario { //所有状态类的接口 + State getName(); + //以下是定义的事件 + void obtainMushRoom(); + void obtainCape(); + void obtainFireFlower(); + void meetMonster(); +} + +public class SmallMario implements IMario { + private MarioStateMachine stateMachine; + public SmallMario(MarioStateMachine stateMachine) { + this.stateMachine = stateMachine; + } + @Override + public State getName() { + return State.SMALL; + } + @Override + public void obtainMushRoom() { + stateMachine.setCurrentState(new SuperMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() + 100); + } + @Override + public void obtainCape() { + stateMachine.setCurrentState(new CapeMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() + 200); + } + @Override + public void obtainFireFlower() { + stateMachine.setCurrentState(new FireMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() + 300); + } + @Override + public void meetMonster() { + // do nothing... + } +} +public class SuperMario implements IMario { + private MarioStateMachine stateMachine; + public SuperMario(MarioStateMachine stateMachine) { + this.stateMachine = stateMachine; + } + @Override + public State getName() { + return State.SUPER; + } + @Override + public void obtainMushRoom() { + // do nothing... + } + @Override + public void obtainCape() { + stateMachine.setCurrentState(new CapeMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() + 200); + } + @Override + public void obtainFireFlower() { + stateMachine.setCurrentState(new FireMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() + 300); + } + @Override + public void meetMonster() { + stateMachine.setCurrentState(new SmallMario(stateMachine)); + stateMachine.setScore(stateMachine.getScore() - 100); + } +} +// 省略CapeMario、FireMario类... +public class MarioStateMachine { + private int score; + private IMario currentState; // 不再使用枚举来表示状态 + public MarioStateMachine() { + this.score = 0; + this.currentState = new SmallMario(this); + } + public void obtainMushRoom() { + this.currentState.obtainMushRoom(); + } + public void obtainCape() { + this.currentState.obtainCape(); + } + public void obtainFireFlower() { + this.currentState.obtainFireFlower(); + } + public void meetMonster() { + this.currentState.meetMonster(); + } + public int getScore() { + return this.score; + } + public State getCurrentState() { + return this.currentState.getName(); + } + public void setScore(int score) { + this.score = score; + } + public void setCurrentState(IMario currentState) { + this.currentState = currentState; + } +} +``` +实际上,像游戏这种比较复杂的状态机,包含的状态比较多,我优先推荐使用查表法,而状态模式会引入非常多的状态类,会导致代码比较难维护。相反,像电商下单、外卖下单这种类型的状态机,它们的状态并不多,状态转移也比较简单,但事件触发执行的动作包含的业务逻辑可能会比较复杂,所以,更加推荐使用状态模式来实现 + diff --git a/Chapter6 - Design Pattern/6.25.md b/Chapter6 - Design Pattern/6.25.md new file mode 100644 index 0000000..58cf98f --- /dev/null +++ b/Chapter6 - Design Pattern/6.25.md @@ -0,0 +1,131 @@ +# 迭代器模式 + +迭代器模式。它用来遍历集合对象。不过,很多编程语言都将迭代器作为一个基础的类库,直接提供出来了。在平时开发中,特别是业务开发,我们直接使用即可,很少会自己去实现一个迭代器。不过,知其然知其所以然,弄懂原理能帮助我们更好的使用这些工具类,所以,我觉得还是有必要学习一下这个模式 + +## 定义 +迭代器模式(Iterator Design Pattern),也叫作游标模式(Cursor Design Pattern)。 +它用来遍历集合对象。这里说的“集合对象”也可以叫“容器”“聚合对象”,实际上就是包含一组对象的对象,比如数组、链表、树、图、跳表。迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一 + +迭代器是用来遍历容器的,所以,一个完整的迭代器模式一般会涉及容器和容器迭代器两部分内容。为了达到基于接口而非实现编程的目的,容器又包含容器接口、容器实现类,迭代器又包含迭代器接口、迭代器实现类 + +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/IteratorPatter-structure.png) + +## 实现 +我们针对 ArrayList 和 LinkedList 两个线性容器,设计实现对应的迭代器。按照之前给出的迭代器模式的类图,我们定义一个迭代器接口 Iterator,以及针对两种容器的具体的迭代器实现类 ArrayIterator 和 ListIterator + +Iterator 接口的定义。具体的代码如下所示 +``` +// 接口定义方式一 +public interface Iterator { +boolean hasNext(); +void next(); +E currentItem(); +} +// 接口定义方式二 +public interface Iterator { +boolean hasNext(); +E next(); +} +``` +在第一种定义中,next() 函数用来将游标后移一位元素,currentItem() 函数用来返回当前游标指向的元素。在第二种定义中,返回当前元素与后移一位这两个操作,要放到同一个函数 next() 中完成 + +第一种定义方式更加灵活一些,比如我们可以多次调用 currentItem() 查询当前元素,而不移动游标。所以,在接下来的实现中,我们选择第一种接口定义方式。 + +ArrayIterator +``` +public class ArrayIterator implements Iterator { + private int cursor; + private ArrayList arrayList; + public ArrayIterator(ArrayList arrayList) { + this.cursor = 0; + this.arrayList = arrayList; + } + @Override + public boolean hasNext() { + return cursor != arrayList.size(); //注意这里,cursor在指向最后一个元素的时候,ha + } + @Override + public void next() { + cursor++; + } + @Override + public E currentItem() { + if (cursor >= arrayList.size()) { + throw new NoSuchElementException(); + } + return arrayList.get(cursor); + } +} +public class Demo { + public static void main(String[] args) { + ArrayList names = new ArrayList<>(); + names.add("xzg"); + names.add("wang"); + names.add("zheng"); + Iterator iterator = new ArrayIterator(names); + while (iterator.hasNext()) { + System.out.println(iterator.currentItem()); + iterator.next(); + } + } +} +``` +在上面的代码实现中,我们需要将待遍历的容器对象,通过构造函数传递给迭代器类。实际上,为了封装迭代器的创建细节,我们可以在容器中定义一个 iterator() 方法,来创建对应的迭代器。为了能实现基于接口而非实现编程,我们还需要将这个方法定义在 List 接口中 +``` +public interface List { + Iterator iterator(); + //...省略其他接口函数... +} +public class ArrayList implements List { + //... + public Iterator iterator() { + return new ArrayIterator(this); + } + //...省略其他代码 +} +public class Demo { + public static void main(String[] args) { + List names = new ArrayList<>(); + names.add("xzg"); + names.add("wang"); + names.add("zheng"); + Iterator iterator = names.iterator(); + while (iterator.hasNext()) { + System.out.println(iterator.currentItem()); + iterator.next(); + } + } +} +``` + +## 优势 +一般来讲,遍历集合数据有三种方法:for 循环、foreach 循环、iterator 迭代器。对于这三种方式,我拿 Java 语言来举例说明一下。具体的代码如下所示 + +``` +List names = new ArrayList<>(); +names.add("xzg"); +names.add("wang"); +names.add("zheng"); +// 第一种遍历方式:for循环 +for (int i = 0; i < names.size(); i++) { + System.out.print(names.get(i) + ","); +} +// 第二种遍历方式:foreach循环 +for (String name : names) { + System.out.print(name + ",") +} +// 第三种遍历方式:迭代器遍历 +Iterator iterator = names.iterator(); +while (iterator.hasNext()) { + System.out.print(iterator.next() + ",");//Java中的迭代器接口是第二种定义方式,next +} +``` +实际上,foreach 循环只是一个语法糖而已,底层是基于迭代器来实现的。也就是说,上面代码中的第二种遍历方式(foreach 循环代码)的底层实现,就是第三种遍历方式(迭代器遍历代码)。这两种遍历方式可以看作同一种遍历方式,也就是迭代器遍历方式。 + + +意义: +对于类似数组和链表这样的数据结构,遍历方式比较简单,直接使用 for 循环来遍历就足够了。但是,对于复杂的数据结构(比如树、图)来说,有各种复杂的遍历方式。比如,树有前中后序、按层遍历,图有深度优先、广度优先遍历等等。如果由客户端代码来实现这些遍历算法,势必增加开发成本,而且容易写错。如果将这部分遍历的逻辑写到容器类中,也会导致容器类代码的复杂性。 + +前面也多次提到,应对复杂性的方法就是拆分。我们可以将遍历操作拆分到迭代器类中。比如,针对图的遍历,我们就可以定义 DFSIterator、BFSIterator 两个迭代器类,让它们分别来实现深度优先遍历和广度优先遍历。 + +其次,将游标指向的当前位置等信息,存储在迭代器类中,每个迭代器独享游标信息。这样,我们就可以创建多个不同的迭代器,同时对同一个容器进行遍历而互不影响。最后,容器和迭代器都提供了抽象的接口,方便我们在开发的时候,基于接口而非具体的实现编程。当需要切换新的遍历算法的时候,比如,从前往后遍历链表切换成从后往前遍历链表,客户端代码只需要将迭代器类从 LinkedIterator 切换为 ReversedLinkedIterator 即可,其他代码都不需要修改。除此之外,添加新的遍历算法,我们只需要扩展新的迭代器类,也更符合开闭原则。 \ No newline at end of file diff --git a/Chapter6 - Design Pattern/6.26.md b/Chapter6 - Design Pattern/6.26.md new file mode 100644 index 0000000..63a2510 --- /dev/null +++ b/Chapter6 - Design Pattern/6.26.md @@ -0,0 +1,320 @@ +# 访问者模式 + +> 访问者模式可以算是 23 种经典设计模式中最难理解的几个之一。因为它难理解、难实现,应用它会导致代码的可读性、可维护性变差,所以,访问者模式在实际的软件开发中很少被用到,在没有特别必要的情况下,建议你不要使用访问者模式 + +## 定义 +访问者者模式的英文翻译是 Visitor Design Pattern。在 GoF 的《设计模式》一书中,它是这么定义的: +> Allows for one or more operation to be applied to a set of objects at runtime, decoupling the operations from the object structure. +翻译成中文就是:允许一个或者多个操作应用到一组对象上,解耦操作和对象本身。 + +## 实现 +### 场景一 +假设我们从网站上爬取了很多资源文件,它们的格式有三种:PDF、PPT、Word。我们现在要开发一个工具来处理这批资源文件。这个工具的其中一个功能是,把这些资源文件中的文本内容抽取出来放到 txt 文件中。 + +``` +public abstract class ResourceFile { + protected String filePath; + public ResourceFile(String filePath) { + this.filePath = filePath; + } + public abstract void extract2txt(); +} + +public class PPTFile extends ResourceFile { + public PPTFile(String filePath) { + super(filePath); + } + @Override + public void extract2txt() { + //...省略一大坨从PPT中抽取文本的代码... + //...将抽取出来的文本保存在跟filePath同名的.txt文件中... + System.out.println("Extract PPT."); + } +} +public class PdfFile extends ResourceFile { + public PdfFile(String filePath) { + super(filePath); + } + @Override + public void extract2txt() { + //... + System.out.println("Extract PDF."); + } +} +public class WordFile extends ResourceFile { + public WordFile(String filePath) { + super(filePath); + } + @Override + public void extract2txt() { + //... + System.out.println("Extract WORD."); + } +} + +public class ToolApplication { + public static void main(String[] args) { + List resourceFiles = listAllResourceFiles(args[0]); + for (ResourceFile resourceFile : resourceFiles) { + resourceFile.extract2txt(); + } + } + private static List listAllResourceFiles(String resourceDirectory) { + List resourceFiles = new ArrayList<>(); + //...根据后缀(pdf/ppt/word)由工厂方法创建不同的类对象(PdfFile/PPTFile/WordFile) + resourceFiles.add(new PdfFile("a.pdf")); + resourceFiles.add(new WordFile("b.word")); + resourceFiles.add(new PPTFile("c.ppt")); + return resourceFiles; + } +} +``` +问题分析: +如果工具的功能不停地扩展,不仅要能抽取文本内容,还要支持压缩、提取文件元信息(文件名、大小、更新时间等等)构建索引等一系列的功能,那如果我们继续按照上面的实现思路,就会存在这样几个问题 +- 违背开闭原则,添加一个新的功能,所有类的代码都要修改 +- 功能增多,每个类的代码都不断膨胀,可读性和可维护性都变差了 +- 把所有比较上层的业务逻辑都耦合到 PdfFile、PPTFile、WordFile 类中,导致这些类的职责不够单一,变成了大杂烩 + +解法:解决方法就是拆分解耦,把业务操作跟具体的数据结构解耦,设计成独立的类。 +``` +public abstract class ResourceFile { + protected String filePath; + public ResourceFile(String filePath) { + this.filePath = filePath; + } +} +public class PdfFile extends ResourceFile { + public PdfFile(String filePath) { + super(filePath); + } + //... +} +//...PPTFile、WordFile代码省略... + +public class Extractor { + public void extract2txt(PPTFile pptFile) { + //... + System.out.println("Extract PPT."); + } + public void extract2txt(PdfFile pdfFile) { + //... + System.out.println("Extract PDF."); + } + public void extract2txt(WordFile wordFile) { + //... + System.out.println("Extract WORD."); + } +} +public class ToolApplication { + public static void main(String[] args) { + Extractor extractor = new Extractor(); + List resourceFiles = listAllResourceFiles(args[0]); + for (ResourceFile resourceFile : resourceFiles) { + extractor.extract2txt(resourceFile); + } + } + private static List listAllResourceFiles(String resourceDirecto + List resourceFiles = new ArrayList<>(); + //...根据后缀(pdf/ppt/word)由工厂方法创建不同的类对象(PdfFile/PPTFile/WordFile) + resourceFiles.add(new PdfFile("a.pdf")); + resourceFiles.add(new WordFile("b.word")); + resourceFiles.add(new PPTFile("c.ppt")); + return resourceFiles; + } +} +``` +其中核心的就是将抽取文本的操作,设计成了3个重载函数(在同一个类中,函数名相同、参数不同的一组函数) +不过上面的代码还是有问题 `extractor.extract2txt(resourceFile)` 会报错。resourceFiles 包含的对象的声明类型都是 ResourceFile,而我们并没有在 Extractor 类中定义参数类型是 ResourceFile 的 extract2txt() 重载函数,所以在编译阶段就通过不了,更别说在运行时根据对象的实际类型执行不同的重载函数了 + +改进 +``` +public abstract class ResourceFile { + protected String filePath; + public ResourceFile(String filePath) { + this.filePath = filePath; + } + abstract public void accept(Extractor extractor); +} +public class PdfFile extends ResourceFile { + public PdfFile(String filePath) { + super(filePath); + } + @Override + public void accept(Extractor extractor) { + extractor.extract2txt(this); + } + //... +} +//...PPTFile、WordFile跟PdfFile类似,这里就省略了... +//...Extractor代码不变... + + public class ToolApplication { + public static void main(String[] args) { + Extractor extractor = new Extractor(); + List resourceFiles = listAllResourceFiles(args[0]); + for (ResourceFile resourceFile : resourceFiles) { + resourceFile.accept(extractor); + } + } + private static List listAllResourceFiles(String resourceDirectory) { + List resourceFiles = new ArrayList<>(); + //...根据后缀(pdf/ppt/word)由工厂方法创建不同的类对象(PdfFile/PPTFile/WordFile) + resourceFiles.add(new PdfFile("a.pdf")); + resourceFiles.add(new WordFile("b.word")); + resourceFiles.add(new PPTFile("c.ppt")); + return resourceFiles; + } +} +``` +`resourceFile.accept(extractor);` 根据多态特性,会调用实际的 accept 函数,比如 PdfFile 的 accept 函数,其中的 this 也就是 PdfFile 类型的,然后调用 accept 传递进来的 extractor 的 extract2txt 方法的 this 也就是 PdfFile,调用到 extractor 的 `public void extract2txt(PPTFile pptFile)` 方法。这也是访问者模式的精髓(也是实际场景中难以想到要问访问者模式的原因,可能是随机想到的刚好命中访问者模式) + + +### 场景二 +如果要继续添加新的功能,比如前面提到的压缩功能,根据不同的文件类型,使用不同的压缩算法来压缩资源文件,那我们该如何实现呢? +1. 需要实现一个类似 Extractor 类的新类 Compressor 类,在其中定义三个重载函数,实现对不同类型资源文件的压缩 +2. 还要在每个资源文件类中定义新的 accept 重载函数 + +``` +public abstract class ResourceFile { + protected String filePath; + public ResourceFile(String filePath) { + this.filePath = filePath; + } + abstract public void accept(Extractor extractor); + abstract public void accept(Compressor compressor); +} +public class PdfFile extends ResourceFile { + public PdfFile(String filePath) { + super(filePath); + } + @Override + public void accept(Extractor extractor) { + extractor.extract2txt(this); + } + @Override + public void accept(Compressor compressor) { + compressor.compress(this); + } + //... +} + +//...PPTFile、WordFile跟PdfFile类似,这里就省略了... +//...Extractor代码不变 + +public class ToolApplication { + public static void main(String[] args) { + Extractor extractor = new Extractor(); + List resourceFiles = listAllResourceFiles(args[0]); + for (ResourceFile resourceFile : resourceFiles) { + resourceFile.accept(extractor); + } + Compressor compressor = new Compressor(); + for(ResourceFile resourceFile : resourceFiles) { + resourceFile.accept(compressor); + } + } + private static List listAllResourceFiles(String resourceDirectory) { + List resourceFiles = new ArrayList<>(); + //...根据后缀(pdf/ppt/word)由工厂方法创建不同的类对象(PdfFile/PPTFile/WordFile) + resourceFiles.add(new PdfFile("a.pdf")); + resourceFiles.add(new WordFile("b.word")); + resourceFiles.add(new PPTFile("c.ppt")); + return resourceFiles; + } +} +``` +问题分析:代码还存在一些问题,添加一个新的业务,还是需要修改每个资源文件类,违反了开闭原则。 + +针对这个问题,我们抽象出来一个 Visitor 接口,包含是三个命名非常通用的 visit() 重载函数,分别处理三种不同类型的资源文件。具体做什么业务处理,由实现这个 Visitor 接口的具体的类来决定,比如 Extractor 负责抽取文本内容,Compressor 负责压缩。当我们新添加一个业务功能的时候,资源文件类不需要做任何修改,只需要修改 ToolApplication 的代码就可以了。 +``` +public abstract class ResourceFile { + protected String filePath; + public ResourceFile(String filePath) { + this.filePath = filePath; + } + abstract public void accept(Visitor vistor); +} + +public class PdfFile extends ResourceFile { + public PdfFile(String filePath) { + super(filePath); + } + @Override + public void accept(Visitor visitor) { + visitor.visit(this); + } + //... +} +//...PPTFile、WordFile跟PdfFile类似,这里就省略了... + +public interface Visitor { + void visit(PdfFile pdfFile); + void visit(PPTFile pdfFile); + void visit(WordFile pdfFile); +} + +public class Extractor implements Visitor { + @Override + public void visit(PPTFile pptFile) { + //... + System.out.println("Extract PPT."); + } + @Override + public void visit(PdfFile pdfFile) { + //... + System.out.println("Extract PDF."); + } + @Override + public void visit(WordFile wordFile) { + //... + System.out.println("Extract WORD."); + } +} + +public class Compressor implements Visitor { + @Override + public void visit(PPTFile pptFile) { + //... + System.out.println("Compress PPT."); + } + @Override + public void visit(PdfFile pdfFile) { + //... + System.out.println("Compress PDF."); + } + @Override + public void visit(WordFile wordFile) { + //... + System.out.println("Compress WORD."); + } +} +public class ToolApplication { + public static void main(String[] args) { + Extractor extractor = new Extractor(); + List resourceFiles = listAllResourceFiles(args[0]); + for (ResourceFile resourceFile : resourceFiles) { + resourceFile.accept(extractor); + } + Compressor compressor = new Compressor(); + for(ResourceFile resourceFile : resourceFiles) { + resourceFile.accept(compressor); + } + } + + private static List listAllResourceFiles(String resourceDirectory) { + List resourceFiles = new ArrayList<>(); + //...根据后缀(pdf/ppt/word)由工厂方法创建不同的类对象(PdfFile/PPTFile/WordFile) + resourceFiles.add(new PdfFile("a.pdf")); + resourceFiles.add(new WordFile("b.word")); + resourceFiles.add(new PPTFile("c.ppt")); + return resourceFiles; + } +} +``` + +## 使用场景 +访问者模式针对的是一组类型不同的对象(PdfFile、PPTFile、WordFile)。不过,尽管这组对象的类型是不同的,但是,它们继承相同的父类(ResourceFile)或者实现相同的接口。在不同的应用场景下,我们需要对这组对象进行一系列不相关的业务操作(抽取文本、压缩等),但为了避免不断添加功能导致类(PdfFile、PPTFile、WordFile)不断膨胀,职责越来越不单一,以及避免频繁地添加功能导致的频繁代码修改,我们使用访问者模式,将对象与操作解耦,将这些业务操作抽离出来,定义在独立细分的访问者类(Extractor、Compressor)中 + + +访问者模式允许一个或者多个操作应用到一组对象上,设计意图是解耦操作和对象本身,保持类职责单一、满足开闭原则以及应对代码的复杂性。 + diff --git a/Chapter6 - Design Pattern/6.27.md b/Chapter6 - Design Pattern/6.27.md new file mode 100644 index 0000000..0b1d516 --- /dev/null +++ b/Chapter6 - Design Pattern/6.27.md @@ -0,0 +1,159 @@ +# 备忘录模式 + +对于大对象的备份和恢复,如何优化内存和时间的消耗 + +## 定义 +备忘录模式,也叫快照(Snapshot)模式,英文翻译是 Memento Design Pattern。在 GoF 的《设计模式》一书中,备忘录模式是这么定义的: +> Captures and externalizes an object’s internal state so that it can be restored later, all without violating encapsulation. +翻译成中文就是:在不违背封装原则的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便之后恢复对象为先前的状态 +核心就是2点: +- 存储副本以便后期恢复 +- 在不违背封装原则的前提下,进行对象的备份和恢复 + +## 如何实现 +- 为什么存储和恢复副本会违背封装原则? +- 备忘录模式是如何做到不违背封装原则的? + +编写一个小程序,可以接收命令行的输入。用户输入文本时,程序将其追加存储在内存文本中;用户输入“:list”,程序在命令行中输出内存文本的内容;用户输入“:undo”,程序会撤销上一次输入的文本,也就是从内存文本中将上次输入的文本删除掉。 +``` +>hello +>:list +hello +>world +>:list +helloworld +>:undo +>:list +hello +``` +简易版本 +``` +public class InputText { + private StringBuilder text = new StringBuilder(); + public String getText() { + return text.toString(); + } + public void append(String input) { + text.append(input); + } + public void setText(String text) { + this.text.replace(0, this.text.length(), text); + } +} +public class SnapshotHolder { + private Stack snapshots = new Stack<>(); + public InputText popSnapshot() { + return snapshots.pop(); + } + public void pushSnapshot(InputText inputText) { + InputText deepClonedInputText = new InputText(); + deepClonedInputText.setText(inputText.getText()); + snapshots.push(deepClonedInputText); + } +} + +public class ApplicationMain { + public static void main(String[] args) { + InputText inputText = new InputText(); + SnapshotHolder snapshotsHolder = new SnapshotHolder(); + Scanner scanner = new Scanner(System.in); + while (scanner.hasNext()) { + String input = scanner.next(); + if (input.equals(":list")) { + System.out.println(inputText.toString()); + } else if (input.equals(":undo")) { + InputText snapshot = snapshotsHolder.popSnapshot(); + inputText.setText(snapshot.getText()); + } else { + snapshotsHolder.pushSnapshot(inputText); + inputText.append(input); + } + } + } +} +``` +问题分析:仔细想想遵循备忘录模式吗(要在不违背封装原则的前提下,进行对象的备份和恢复)? +- 为了实现快照恢复功能,在 InputText 类中定义了 `setText` 方法,这个方法名字很普通,就是一个设置文本的方法,而且还是公有方法,外部很容易误调用,也不符合封装原则 +- 快照应该是不可变的,所以不需要对外暴露 set 等用于修改内部状态的方法。且上面的实现复用了 InputText 这个类,用于充当快照类。InputText 同时存在一系列修改内部状态的方法,违背封装原则 + +改进: +- 单独抽取 SnapShot 类,用于快照数据的保存,对外只暴露 get 方法,没有 set 方法去修改内部状态 +- Input 类中,把 setText 改为针对特定场景的 resetSnapShot 方法,标识特定场景,只用于恢复快照数据 + +``` +public class InputText { + private StringBuilder text = new StringBuilder(); + public String getText() { + return text.toString(); + } + public void append(String input) { + text.append(input); + } + public Snapshot createSnapshot() { + return new Snapshot(text.toString()); + } + public void restoreSnapshot(Snapshot snapshot) { + this.text.replace(0, this.text.length(), snapshot.getText()); + } +} + +public class Snapshot { + private String text; + public Snapshot(String text) { + this.text = text; + } + public String getText() { + return this.text; + } +} + +public class SnapshotHolder { + private Stack snapshots = new Stack<>(); + public Snapshot popSnapshot() { + return snapshots.pop(); + } + public void pushSnapshot(Snapshot snapshot) { + snapshots.push(snapshot); + } +} + +public class ApplicationMain { + public static void main(String[] args) { + InputText inputText = new InputText(); + SnapshotHolder snapshotsHolder = new SnapshotHolder(); + Scanner scanner = new Scanner(System.in); + while (scanner.hasNext()) { + String input = scanner.next(); + if (input.equals(":list")) { + System.out.println(inputText.toString()); + } else if (input.equals(":undo")) { + Snapshot snapshot = snapshotsHolder.popSnapshot(); + inputText.restoreSnapshot(snapshot); + } else { + snapshotsHolder.pushSnapshot(inputText.createSnapshot()); + inputText.append(input); + } + } + } +} + +``` +上面的代码实现就是典型的备忘录模式的代码实现,也是很多书籍(包括 GoF 的《设计模式》)中给出的实现方法。 + +## QA +备忘录模式,还有一个跟它很类似的概念,“备份”,有何异同? +两者的应用场景很类似,都应用在防丢失、恢复、撤销等场景中。备忘录模式更侧重于代码的设计和实现,备份更侧重架构设计或产品设计 + +## 优化内存和时间消耗 +上面的实现存在问题:如果要备份的对象数据比较大,备份频率又比较高,那快照占用的内存会比较大,备份和恢复的耗时会比较长。这个问题该如何解决呢? + +不同的应用场景下有不同的解决方法。比如,我们前面举的那个例子,应用场景是利用备忘录来实现撤销操作,而且仅仅支持顺序撤销,也就是说,每次操作只能撤销上一次的输入,不能跳过上次输入撤销之前的输入。在具有这样特点的应用场景下,为了节省内存,我们不需要在快照中存储完整的文本,只需要记录少许信息,比如在获取快照当下的文本长度,用这个值结合 InputText 类对象存储的文本来做撤销操作。 + +我们再举一个例子。假设每当有数据改动,我们都需要生成一个备份,以备之后恢复。如果需要备份的数据很大,这样高频率的备份,不管是对存储(内存或者硬盘)的消耗,还是对 +时间的消耗,都可能是无法接受的。想要解决这个问题,我们一般会采用“**低频率全量备份**”和“**高频率增量备份**”相结合的方法。 + +全量备份就不用讲了,它跟我们上面的例子类似,就是把所有的数据“拍个快照”保存下来。所谓“增量备份”,指的是记录每次操作或数据变动。 + +当我们需要恢复到某一时间点的备份的时候,如果这一时间点有做全量备份,我们直接拿来恢复就可以了。如果这一时间点没有对应的全量备份,我们就先找到最近的一次全量备份, +然后用它来恢复,之后执行此次全量备份跟这一时间点之间的所有增量备份,也就是对应的操作或者数据变动。这样就能减少全量备份的数量和频率,减少对时间、内存的消耗。 + diff --git a/Chapter6 - Design Pattern/6.28.md b/Chapter6 - Design Pattern/6.28.md new file mode 100644 index 0000000..f72e374 --- /dev/null +++ b/Chapter6 - Design Pattern/6.28.md @@ -0,0 +1,94 @@ +# 命令模式 + +如何利用命令模式实现一个手游后端架构 + +## 定义 +命令模式的英文翻译是 Command Design Pattern。在 GoF 的《设计模式》一书中,它是这么定义的: +> The command pattern encapsulates a request as an object, thereby letting us parameterize other objects with different requests, queue or log requests, and support undoable operations. + +命令模式将请求(命令)封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求(命令)的排队执行、记录日志、撤销等(附加控制)功能 + +## 使用场景 +落实到编码实现,命令模式用的最核心的实现手段,是将函数封装成对象。我们知道,C 语言支持函数指针,我们可以把函数当作变量传递来传递去。但是,在大部分编程语言中,函数没法儿作为参数传递给其他函数,也没法儿赋值给变量。借助命令模式,我们可以将函数封装成对象。具体来说就是,设计一个包含这个函数的类,实例化一个对象传来传去,这样就可以实现把函数像对象一样使用。从实现的角度来说,它类似我们之前讲过的回调 + +当我们把函数封装成对象之后,对象就可以存储下来,方便控制执行。所以,命令模式的主要作用和应用场景,是用来控制命令的执行,比如,异步、延迟、排队执行命令、撤销重做命令、存储命令、给命令记录日志等等,这才是命令模式能发挥独一无二作用的地方。 + +## 实现 +假设我们正在开发一个类似《天天酷跑》或者《QQ 卡丁车》这样的手游。这种游戏本身的复杂度集中在客户端。后端基本上只负责数据(比如积分、生命值、装备)的更新和查询,所以,后端逻辑相对于客户端来说,要简单很多。 + +为了提高性能,我们会把游戏中玩家的信息保存在内存中。在游戏进行的过程中,只更新内存中的数据,游戏结束之后,再将内存中的数据存档,也就是持久化到数据库中。为了降低实现的难度,一般来说,同一个游戏场景里的玩家,会被分配到同一台服务上。这样,一个玩家拉取同一个游戏场景中的其他玩家的信息,就不需要跨服务器去查找了,实现起来就简单了很多。 + +一般来说,游戏客户端和服务器之间的数据交互是比较频繁的,所以,为了节省网络连接建立的开销,客户端和服务器之间一般采用长连接的方式来通信。通信的格式有多种,比如Protocol Buffer、JSON、XML,甚至可以自定义格式。不管是什么格式,客户端发送给服务器的请求,一般都包括两部分内容:指令和数据。其中,指令我们也可以叫作事件,数据是执行这个指令所需的数据。 + +服务器在接收到客户端的请求之后,会解析出指令和数据,并且根据指令的不同,执行不同的处理逻辑。对于这样的一个业务场景,一般有两种架构实现思路。 + +常用的一种实现思路是利用多线程。一个线程接收请求,接收到请求之后,启动一个新的线程来处理请求。具体点讲,一般是通过一个主线程来接收客户端发来的请求。每当接收到一个请求之后,就从一个专门用来处理请求的线程池中,捞出一个空闲线程来处理。 + +另一种实现思路是在一个线程内轮询接收请求和处理请求。这种处理方式不太常见。尽管它无法利用多线程多核处理的优势,但是对于 IO 密集型的业务来说,它避免了多线程不停切换对性能的损耗,并且克服了多线程编程 Bug 比较难调试的缺点,也算是手游后端服务器开发中比较常见的架构模式了。 + +整个手游后端服务器轮询获取客户端发来的请求,获取到请求之后,借助命令模式,把请求包含的数据和处理逻辑封装为命令对象,并存储在内存队列中。然后,再从队列中取出一定数量的命令来执行。执行完成之后,再重新开始新的一轮轮询。 +``` +public interface Command { + void execute(); +} +public class GotDiamondCommand implements Command { + // 省略成员变量 + public GotDiamondCommand(/*数据*/) { + //... + } + @Override + public void execute() { + // 执行相应的逻辑 + } +} +//GotStartCommand、HitObstacleCommand、ArchiveCommand类省略 + +public class GameApplication { + private static final int MAX_HANDLED_REQ_COUNT_PER_LOOP = 100; + private Queue queue = new LinkedList<>(); + public void mainloop() { + while (true) { + List requests = new ArrayList<>(); + //省略从epoll或者select中获取数据,并封装成Request的逻辑, + //注意设置超时时间,如果很长时间没有接收到请求,就继续下面的逻辑处理。 + for (Request request : requests) { + Event event = request.getEvent(); + Command command = null; + if (event.equals(Event.GOT_DIAMOND)) { + command = new GotDiamondCommand(/*数据*/); + } else if (event.equals(Event.GOT_STAR)) { + command = new GotStartCommand(/*数据*/); + } else if (event.equals(Event.HIT_OBSTACLE)) { + command = new HitObstacleCommand(/*数据*/); + } else if (event.equals(Event.ARCHIVE)) { + command = new ArchiveCommand(/*数据*/); + } // ...一堆else if... + queue.add(command); + } + + int handledCount = 0; + while (handledCount < MAX_HANDLED_REQ_COUNT_PER_LOOP) { + if (queue.isEmpty()) { + break; + } + Command command = queue.poll(); + command.execute(); + } + } +} +``` + +## 命令模式 VS 策略模式 +命令模式跟策略模式、工厂模式非常相似啊,那它们的区别在哪里呢? + + +实际上,每个设计模式都应该由两部分组成:第一部分是应用场景,即这个模式可以解决哪类问题;第二部分是解决方案,即这个模式的设计思路和具体的代码实现。不过,代码实现并不是模式必须包含的。如果你单纯地只关注解决方案这一部分,甚至只关注代码实现,就会产生大部分模式看起来都很相似的错觉 + +实际上,设计模式之间的主要区别还是在于设计意图,也就是应用场景。单纯地看设计思路或者代码实现,有些模式确实很相似,比如策略模式和工厂模式。 + +之前讲策略模式的时候,我们有讲到,策略模式包含策略的定义、创建和使用三部分,从代码结构上来,它非常像工厂模式。它们的区别在于,策略模式侧重“策略”或“算法”这个特定的应用场景,用来解决根据运行时状态从一组策略中选择不同策略的问题,而工厂模式侧重封装对象的创建过程,这里的对象没有任何业务场景的限定,可以是策略,但也可以是其他东西。从设计意图上来,这两个模式完全是两回事儿。 + +有了刚刚的铺垫,接下来,我们再来看命令模式跟策略模式的区别。你可能会觉得,命令的执行逻辑也可以看作策略,那它是不是就是策略模式了呢?实际上,这两者有一点细微的区别。 + +在策略模式中,不同的策略具有相同的目的、不同的实现、互相之间可以替换。比如,BubbleSort、SelectionSort 都是为了实现排序的,只不过一个是用冒泡排序算法来实现的,另一个是用选择排序算法来实现的。而在命令模式中,不同的命令具有不同的目的,对应不同的处理逻辑,并且互相之间不可替换。 + diff --git a/Chapter6 - Design Pattern/6.29.md b/Chapter6 - Design Pattern/6.29.md new file mode 100644 index 0000000..81131a6 --- /dev/null +++ b/Chapter6 - Design Pattern/6.29.md @@ -0,0 +1,138 @@ +# 解释器模式 + +## 定义 +解释器模式的英文翻译是 Interpreter Design Pattern。在 GoF 的《设计模式》一书中,它是这样定义的 +> Interpreter pattern is used to defines a grammatical representation for a language and provides an interpreter to deal with this grammar. +翻译成中文就是:解释器模式为某个语言定义它的语法(或者叫文法)表示,并定义一个解释器用来处理这个语法 + +这里面有很多我们平时开发中很少接触的概念,比如“语言”“语法”“解释器”。实际上,这里的“语言”不仅仅指我们平时说的中、英、日、法等各种语言。从广义上来讲,只要是能承载信息的载体,我们都可以称之为“语言”,比如,古代的结绳记事、盲文、哑语、摩斯密码等。 + +要想了解“语言”表达的信息,我们就必须定义相应的语法规则。这样,书写者就可以根据语法规则来书写“句子”(专业点的叫法应该是“表达式”),阅读者根据语法规则来阅读“句子”,这样才能做到信息的正确传递。而我们要讲的解释器模式,其实就是用来实现根据语法规则解读“句子”的解释器。这个过程类似加解密。通信前,Alice 使用约定好的密钥(语法、文法)进行加密,得到秘文。然后 Bob 收到秘文后同样利用约定好的加密方式(语法、文法)去解密,得到原始信息。 + +## 实现 +假设我们定义了一个新的加减乘除计算“语言”,语法规则如下: +- 运算符只包含加、减、乘、除,并且没有优先级的概念; +- 表达式(也就是前面提到的“句子”)中,先书写数字,后书写运算符,空格隔开; +按照先后顺序,取出两个数字和一个运算符计算结果,结果重新放入数字的最头部位置,循环上述过程,直到只剩下一个数字,这个数字就是表达式最终的计算结果。 + +我们举个例子来解释一下上面的语法规则:比如“ 8 3 2 4 - + * ”这样一个表达式,我们按照上面的语法规则来处理,取出数字“8 3”和“-”运算符,计算得到 5,于是表达式就变成了“ 5 2 4 + * ”。然后,我们再取出“ 5 2 ”和“ + ”运算符,计算得到 7,表达式就变成了“ 7 4 * ”。最后,我们取出“ 7 4”和“ * ”运算符,最终得到的结果就是 28。 + +``` +public class ExpressionInterpreter { + private Deque numbers = new LinkedList<>(); + public long interpret(String expression) { + String[] elements = expression.split(" "); + int length = elements.length; + for (int i = 0; i < (length+1)/2; ++i) { + numbers.addLast(Long.parseLong(elements[i])); + } + for (int i = (length+1)/2; i < length; ++i) { + String operator = elements[i]; + boolean isValid = "+".equals(operator) || "-".equals(operator) || "*".equals(operator) || "/".equals(operator); + if (!isValid) { + throw new RuntimeException("Expression is invalid: " + expression); + } + long number1 = numbers.pollFirst(); + long number2 = numbers.pollFirst(); + long result = 0; + if (operator.equals("+")) { + result = number1 + number2; + } else if (operator.equals("-")) { + result = number1 - number2; + } else if (operator.equals("*")) { + result = number1 * number2; + } else if (operator.equals("/")) { + result = number1 / number2; + } + numbers.addFirst(result); + } + if (numbers.size() != 1) { + throw new RuntimeException("Expression is invalid: " + expression); + } + return numbers.pop(); + } +} +``` +问题分析: +上面的代码实现中,语法解析都写在了 if 判断中了,如果简单的语法规则解析,这样的设计就足够了。但是,对于简单的语法规则解析,这样就足够了。但是,对于复杂的语法规则的解析,逻辑耦合在一起很复杂了,代码量会很多,这在设计上是不合理的。往往这个时候就需要拆分代码,将解析逻辑拆分到独立的子类中。 + +如何拆分? +解释器模式的实现比较灵活,没有固定的模版,主要是思想。核心是将语法解析的工作拆分到各个子类中,以此来避免大而全的解析类。 + +前面定义的语法规则有两类表达式:一类是数字、一类是运算符。运算符包括加减乘除,利用解析器模式,把解析工作拆分到 NumberExpression、AdditionExpression、SubstractionExpress、MultiplicationExpression、DivisionExpression 解析类。 + +代码如下: +``` +public interface Expression { + long interpret(); +} + +public class NumberExpression implements Expression { + private long number; + public NumberExpression(long number) { + this.number = number; + } + public NumberExpression(String number) { + this.number = Long.parseLong(number); + } + @Override + public long interpret() { + return this.number; + } +} + +public class AdditionExpression implements Expression { + private Expression exp1; + private Expression exp2; + public AdditionExpression(Expression exp1, Expression exp2) { + this.exp1 = exp1; + this.exp2 = exp2; + } + @Override + public long interpret() { + return exp1.interpret() + exp2.interpret(); + } +} +// SubstractionExpression、MultiplicationExpression、DivisionExpression、AdditionExpression +public class ExpressionInterpreter { + private Deque numbers = new LinkedList<>(); + public long interpret(String expression) { + String[] elements = expression.split(" "); + int length = elements.length; + for (int i = 0; i < (length+1)/2; ++i) { + numbers.addLast(new NumberExpression(elements[i])); + } + for (int i = (length+1)/2; i < length; ++i) { + String operator = elements[i]; + boolean isValid = "+".equals(operator) || "-".equals(operator) || "*".equals(operator) || "/".equals(operator); + if (!isValid) { + throw new RuntimeException("Expression is invalid: " + expression); + } + Expression exp1 = numbers.pollFirst(); + Expression exp2 = numbers.pollFirst(); + Expression combinedExp = null; + if (operator.equals("+")) { + combinedExp = new AdditionExpression(exp1, exp2); + } else if (operator.equals("-")) { + combinedExp = new AdditionExpression(exp1, exp2); + } else if (operator.equals("*")) { + combinedExp = new AdditionExpression(exp1, exp2); + } else if (operator.equals("/")) { + combinedExp = new AdditionExpression(exp1, exp2); + } + long result = combinedExp.interpret(); + numbers.addFirst(new NumberExpression(result)); + } + if (numbers.size() != 1) { + throw new RuntimeException("Expression is invalid: " + expression); + } + return numbers.pop().interpret(); + } +} +``` + +## 场景 +- Java 中注解处理器做的就是解释功能 +- 前端编译时的语法分析、语义分析 +- 语言编译时生成的中间代码 IR,用于编译后端的更多编译优化 +- 自定义一门语言,然后通过语法解析器去分析读入 \ No newline at end of file diff --git a/Chapter6 - Design Pattern/6.30.md b/Chapter6 - Design Pattern/6.30.md new file mode 100644 index 0000000..ed5a68f --- /dev/null +++ b/Chapter6 - Design Pattern/6.30.md @@ -0,0 +1,163 @@ +# 中介模式 +什么时候用中介模式?什么时候用观察者模式 + +## 定义 +中介模式的英文翻译是 Mediator Design Pattern。在 GoF 中的《设计模式》一书中,它是这样定义的: +> Mediator pattern defines a separate (mediator) object that encapsulates the interaction between a set of objects and the objects delegate their interaction to a mediator object instead of interacting with each other directly. +翻译成中文就是:中介模式定义了一个单独的(中介)对象,来封装一组对象之间的交互。将这组对象之间的交互委派给与中介对象交互,来避免对象之间的直接交互。 + +实际上,中介模式的设计思想跟中间层很像,通过引入中介这个中间层,将一组对象之间的交互关系(或者说依赖关系)从多对多(网状关系)转换为一对多(星状关系)。原来一个对象要跟 n 个对象交互,现在只需要跟一个中介对象交互,从而最小化对象之间的交互关系,降低了代码的复杂度,提高了代码的可读性和可维护性。 +![](https://raw.githubusercontent.com/FantasticLBP/knowledge-kit/master/assets/Mediator-Pattern-advantage.png) + +## 实现 +提到中介模式,有一个比较经典的例子不得不说,那就是航空管制。为了让飞机在飞行的时候互不干扰,每架飞机都需要知道其他飞机每时每刻的位置,这就需 +要时刻跟其他飞机通信。飞机通信形成的通信网络就会无比复杂。这个时候,我们通过引入“塔台”这样一个中介,让每架飞机只跟塔台来通信,发送自己的位置给塔台,由塔台来负责每架飞机的航线调度。这样就大大简化了通信网络 + +再一个例子:对话框中有很多控件,比如按钮、文本框、下拉框等。当我们对某个控件进行操作的时候,其他控件会做出相应的反应,比如,我们在下拉框中选择“注册”,注册相关的控件就会显示在对话框中。如果我们在下拉框中选择“登陆”,登陆相关的控件就会显示在对话框中。 + +``` +public class UIControl { + private static final String LOGIN_BTN_ID = "login_btn"; + private static final String REG_BTN_ID = "reg_btn"; + private static final String USERNAME_INPUT_ID = "username_input"; + private static final String PASSWORD_INPUT_ID = "pswd_input"; + private static final String REPEATED_PASSWORD_INPUT_ID = "repeated_pswd_input + private static final String HINT_TEXT_ID = "hint_text"; + private static final String SELECTION_ID = "selection"; + public static void main(String[] args) { + Button loginButton = (Button)findViewById(LOGIN_BTN_ID); + Button regButton = (Button)findViewById(REG_BTN_ID); + Input usernameInput = (Input)findViewById(USERNAME_INPUT_ID); + Input passwordInput = (Input)findViewById(PASSWORD_INPUT_ID); + Input repeatedPswdInput = (Input)findViewById(REPEATED_PASSWORD_INPUT_ID); + Text hintText = (Text)findViewById(HINT_TEXT_ID); + Selection selection = (Selection)findViewById(SELECTION_ID); + loginButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + String username = usernameInput.text(); + String password = passwordInput.text(); + //校验数据... + //做业务处理... + } + }); + regButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + //获取usernameInput、passwordInput、repeatedPswdInput数据... + //校验数据... + //做业务处理... + } + }); + //...省略selection下拉选择框相关代码.... + } +} +``` +问题分析:登陆按钮的点击事件要处理 usernameInput、passwordInput、repeatedPasswordInput 等对象,其他按钮的点击事件也是一样。也就是不同对象存在互相通信(事件、访问),可以通过中介者模式来解决 +``` +public interface Mediator { + void handleEvent(Component component, String event); +} + +public class LandingPageDialog implements Mediator { + private Button loginButton; + private Button regButton; + private Selection selection; + private Input usernameInput; + private Input passwordInput; + private Input repeatedPswdInput; + private Text hintText; + + @Override + public void handleEvent(Component component, String event) { + if (component.equals(loginButton)) { + String username = usernameInput.text(); + String password = passwordInput.text(); + //校验数据... + //做业务处理... + } else if (component.equals(regButton)) { + //获取usernameInput、passwordInput、repeatedPswdInput数据... + //校验数据... + //做业务处理... + } else if (component.equals(selection)) { + selectedItem = selection.select(); + if (selectedItem.equals("login")) { + usernameInput.show(); + passwordInput.show(); + repeatedPswdInput.hide(); + hintText.hide(); + //...省略其他代码 + } else if (selectedItem.equals("register")) { + //.... + } + } + } +} + +public class UIControl { + private static final String LOGIN_BTN_ID = "login_btn"; + private static final String REG_BTN_ID = "reg_btn"; + private static final String USERNAME_INPUT_ID = "username_input"; + private static final String PASSWORD_INPUT_ID = "pswd_input"; + private static final String REPEATED_PASSWORD_INPUT_ID = "repeated_pswd_input + private static final String HINT_TEXT_ID = "hint_text"; + private static final String SELECTION_ID = "selection"; + + public static void main(String[] args) { + Button loginButton = (Button)findViewById(LOGIN_BTN_ID); + Button regButton = (Button)findViewById(REG_BTN_ID); + Input usernameInput = (Input)findViewById(USERNAME_INPUT_ID); + Input passwordInput = (Input)findViewById(PASSWORD_INPUT_ID); + Input repeatedPswdInput = (Input)findViewById(REPEATED_PASSWORD_INPUT_ID); + Text hintText = (Text)findViewById(HINT_TEXT_ID); + Selection selection = (Selection)findViewById(SELECTION_ID); + + Mediator dialog = new LandingPageDialog(); + dialog.setLoginButton(loginButton); + dialog.setRegButton(regButton); + dialog.setUsernameInput(usernameInput); + dialog.setPasswordInput(passwordInput); + dialog.setRepeatedPswdInput(repeatedPswdInput); + dialog.setHintText(hintText); + dialog.setSelection(selection); + + loginButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dialog.handleEvent(loginButton, "click"); + } + }); + regButton.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + dialog.handleEvent(regButton, "click"); + } + }); + //.... + } +} +``` +分析:从代码中我们可以看出,原本业务逻辑会分散在各个控件中,现在都集中到了中介类中。 +实际上,这样做既有好处,也有坏处。好处是简化了控件之间的交互,坏处是中介类有可能会变成大而复杂的“上帝类”(God Class)。 +所以,在使用中介模式的时候,我们要根据实际的情况,平衡对象之间交互的复杂度和中介类本身的复杂度 + +## 中介模式 VS 观察者模式 +观察者模式有多种实现方式。虽然经典的实现方式没法彻底解耦观察者和被观察者,观察者需要注册到被观察者中,被观察者状态更新需要调用观察者的 update() 方法。但是,在跨进程的实现方式中,我们可以利用消息队列实现彻底解耦,观察者和被观察者都只需要跟消息队列交互,观察者完全不知道被观察者的存在,被观察者也完全不知道观察者的存在。 + +中介模式也是为了解耦对象之间的交互,所有的参与者都只与中介进行交互。而观察者模式中的消息队列,就有点类似中介模式中的“中介”,观察者模式的中观察者和被观察者,就有点类似中介模式中的“参与者”。 + +那问题来了:中介模式和观察者模式的区别在哪里呢?什么时候选择使用中介模式?什么时候选择使用观察者模式呢? + +在观察者模式中,尽管一个参与者既可以是观察者,同时也可以是被观察者,但是,大部分情况下,交互关系往往都是单向的,一个参与者要么是观察者,要么是被观察者,不会兼具两种身份。也就是说,在观察者模式的应用场景中,参与者之间的交互关系比较有条理。 + +而中介模式正好相反。只有当参与者之间的交互关系错综复杂,维护成本很高的时候,我们才考虑使用中介模式。毕竟,中介模式的应用会带来一定的副作用,前面也讲到,它有可能会产生大而复杂的上帝类。除此之外,如果一个参与者状态的改变,其他参与者执行的操作有一定先后顺序的要求,这个时候,中介模式就可以利用中介类,通过先后调用不同参与者的方法,来实现顺序的控制,而观察者模式是无法实现这样的顺序要求的。 + +总结:观察者模式和中介模式都是为了实现参与者之间的解耦,简化交互关系。两者的不同在于应用场景上。在观察者模式的应用场景中,参与者之间的交互比较有条理,一般都是单向的,一个参与者只有一个身份,要么是观察者,要么是被观察者。而在中介模式的应用场景中,参与者之间的交互关系错综复杂,既可以是消息的发送者、也可以同时是消息的接收者。 + +想到了现在流行的微服务,注册中心可以理解为广义的中介模式,防止各个服务间错综复杂的调用。 + +## QA + +EventBus 框架。当时我们认为它是观察者模式的实现框架。EventBus 作为一个事件处理的中心,事件的派送、订阅都通过这个中心来完成,那是不是更像中介模式的实现框架呢? + +eventbus更属于观察者模式。首先eventbus中不处理业务逻辑,只提供了对象与对象之间交互的管道;而中介模式为了解决多个对象之间交互的问题,将多个对象的行为封装到一起(中介),然后任意对象和这个中介交互,中介中包含了具体业务逻辑。其次从其实现的思路上,EventBus 和观察者都需要定义 Observer,并且通过 register() 函数注册 Observer,也都需要通过调用某个函数(比如,EventBus 中的 post() 函数)来给 Observer 通信 \ No newline at end of file diff --git a/Chapter6 - Design Pattern/6.31.md b/Chapter6 - Design Pattern/6.31.md new file mode 100644 index 0000000..8bcf7c5 --- /dev/null +++ b/Chapter6 - Design Pattern/6.31.md @@ -0,0 +1,36 @@ +# 设计模式怎么应用?如何避免过度设计、又如何避免设计不足 + +## 现状 +面对代码,经常存在两种情况。 + +一种是过度设计,在开始写代码之前,会花很长时间做技术方案上(技术方案时间长短没有统一标准),会花很多时间在代码设计上,打算用到各种设计模式,美其名曰“未雨绸缪、面向未来、业务可迁移”,但可能伴随的问题是,未来的业务需求怎么演进是个未知数,领域如何发展也是未知数,在最早期就过度设计会导致大大增加代码复杂度,以后的开发都要站在这套复杂的设计之上进行开发、设计、维护、修改了(举个例子:Redux 分层太多、角色太多的好处之一是角色清晰、各司其职,但坏处也是显而易见的,简单的场景,杀鸡用了牛刀) + +另一种是不咋设计,技术/业务项目以来,简单分析后,立马操刀就干,代码能跑就行,业务项目甚至是面向 PRD 编程,PRD 罗列的 case 直接用代码翻译一下,没有设计思想,谈何面向未来、高内聚低耦合、开闭、里氏替换?不存在的。改动一个小点,可能要改很多处代码,前一发而动全身,后人接手也不敢碰。 + +那如何做到不过度设计,也避免设计不足的问题? + +## 设计初衷是提高代码质量 +马斯克经常会提到“第一性原理”,我也赞同这个研究方式和思维方式。写代码,包括应用设计模式也是如此。设计模式只是方法,只是工具,最后的目的,核心的诉求是:提高代码的可读性、可拓展性、可维护性。所有的设计都围绕这个目的来展开。 + +所以拿到项目或者问题,先问几个问题:为什么要这样设计、为什么要用这个设计模式、这样做是否真正的提高代码质量、提高代码哪些方面的质量、怎么样提高可维护性、可拓展性。如果这几个问题回答清楚了,那基本就没什么问题了(为什么是基本?软件工程需要考虑 ROI)。如果答案是觉得还行,但是解决的问题不够痛、价值没那么大,那可能当前的方案有点为了设计而设计了。 + +换个角度思考,设计模式是招式、设计原则/思想是心法。低阶的江湖侠客追求的是招式,大宗师追求的是心法。掌握心法,以不变应万变,无招胜有招。所以掌握设计思想更重要,设计思想比设计模式更普适,23种设计模式是之前的人总结出来的,说不定过个几十年又诞生几种新的设计模式,掌握设计思想的话可以面向未来,甚至你之前写的某个设计,刚好和新诞生的设计模式有异曲同工之妙,甚至后来才意识到,我的这个实现原来是最近新出来的某某某设计模式 + +## 先有问题,再有方案 +如果我们把写出的代码看作产品,那做产品的时候,我们先要思考痛点在哪里,用户的真正需求在哪里,然后再看要开发哪些功能去满足,而不是先拍脑袋想出一个花哨的功能,再去东搬西凑硬编出一个需求来。 + +代码设计也是类似的。我们先要去分析代码存在的痛点,比如可读性不好、可扩展性不好等等,然后再针对性地利用设计模式去改善,而不是看到某个场景之后,觉得跟之前在某本书中看到的某个设计模式的应用场景很相似,就套用上去,也不考虑到底合不合适,最后如果有人问起了,就再找几个不痛不痒、很不具体的伪需求来搪塞,比如提高了代码的扩展性、满足了开闭原则等等 + +## 设计的应用场景是复杂的代码 +很多设计模式相关的书籍都会举一些简单的例子,这些例子仅仅具有教学意义,只是为了讲解设计模式的原理和实现,力求在有限篇幅内给你讲明白。而很多人就会误以为这些简单的例子就是这些设计模式的典型应用场景,常常照葫芦画瓢地应用到自己的项目中,用复杂的设计模式去解决简单的问题,还振振有词地说某某经典书中就是这么写的。在我看来,这是很多初学者因为缺乏经验,在学完设计模式之后,在项目中过度设计的首要原因。 + +设计模式要干的事情就是解耦,也就是利用更好的代码结构将一大坨代码拆分成职责更单一的小类,让其满足高内聚低耦合等特性。创建型模式是将创建和使用代码解耦,结构型模式是将不同的功能代码解耦,行为型模式是将不同的行为代码解耦。而解耦的主要目的是应对代码的复杂性。**设计模式就是为了解决复杂代码问题而产生的** + +对于复杂代码,比如项目代码量多、开发周期长、参与开发的人员多,我们前期要多花点时间在设计上,越是复杂代码,花在设计上的时间就要越多。 +不仅如此,每次提交的代码,都要保证代码质量,都要经过足够的思考和精心的设计,这样才能避免烂代码效应(每次提交的代码质量都不是太好,最终积累起来整个项目的质量就变得很差)。 + +## 持续重构能有效避免过度设计 +比如一个很简单的场景简单的 MVC 加几个 Handler 就可以实现,但是有些小伙伴学完前端 Redux 觉得好酷,就要在客户端落地这个实现,导致平白增加几个角色,带来的好处就是角色多、各司其职、边界清晰、增加可拓展性,但缺点也很明显,降低代码的可读性、提高复杂度。一旦引入新的某个设计,不可能就可以随意下掉,也就是说在接下来的很长一段时间里,修改、维护某个简单的功能就需要遵循这个复杂的设计(框架苦开发久已) + +所以为了避免过度设计,避免因需求误判而导致的过度设计,推荐持续重构的方法。持续重构不仅可以保证代码质量,也可以避免过度设计。面对真正有痛点的设计,再去用合适的设计模式去解决,而不是一下子全部推翻,从项目管理上和质量方面来说,这个做法很冒险、不够健康 + diff --git a/SUMMARY.md b/SUMMARY.md index f20e6ce..869a3f0 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -206,7 +206,14 @@ * [21、模板模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.21.md) * [22、模板模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.22.md) * [23、职责链模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.23.md) - + * [24、状态模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.24.md) + * [25、迭代器模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.25.md) + * [26、访问者模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.26.md) + * [27、备忘录模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.27.md) + * [28、命令模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.28.md) + * [29、解释器模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.29.md) + * [30、中介模式](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.30.md) + * [31、设计模式怎么应用?如何避免过度设计、又如何避免设计不足](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter6%20-%20Design%20Pattern/6.31.md) * [Chapter7 - Geek Talk](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter7%20-%20Geek%20Talk/chapter7.md) * [1、命令行文件查找](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter7%20-%20Geek%20Talk/7.1.md) * [2、Charles 从入门到精通](https://github.com/FantasticLBP/knowledge-kit/blob/master/Chapter7%20-%20Geek%20Talk/7.2.md) diff --git a/assets/IteratorPatter-structure.png b/assets/IteratorPatter-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..697ccc82e48732a64dfd1205a169f610817c1b73 GIT binary patch literal 54562 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 literal 0 HcmV?d00001 diff --git a/assets/Mediator-Pattern-advantage.png b/assets/Mediator-Pattern-advantage.png new file mode 100644 index 0000000000000000000000000000000000000000..9516cae6c1e29a750524c8449ca9d4cfa5238869 GIT binary patch literal 81744 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

h=A0g2CZnY|mXh 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

*6}}a$9XFT*TD!Gfs6*B#)e}|*nd(^ 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 OmxPF{aIK(z;Qs;p!U5s{ literal 0 HcmV?d00001 diff --git a/assets/StateMachine-TabMethod.png b/assets/StateMachine-TabMethod.png new file mode 100644 index 0000000000000000000000000000000000000000..b819f80001de21653a9378c8ffafd298a8256b90 GIT binary patch literal 49120 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 nsL@D}3^cKR=C!-!He@J~fSQ@%phGU)#SqZ$@h literal 0 HcmV?d00001 diff --git a/assets/StateMachinePatter-Mariogame.png b/assets/StateMachinePatter-Mariogame.png new file mode 100644 index 0000000000000000000000000000000000000000..cb30c1202a2dd8218510c20a111338cfda5e6e91 GIT binary patch literal 83563 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 literal 0 HcmV?d00001