摘要: 访问者模式(Visitor Design Pattern) 多态是一种动态绑定,可以在运行时获取对象的实际类型,来运行实际类型对应的方法。而函数重载是一种静态绑定,在编译时并不能获取对象的实际类型,而是根据声明类型执行声明类型对应的方法。 允许一个或者多个操作应用到一组对象上,解耦操作和对象本身 访 阅读全文
posted @ 2021-01-20 15:33 kudo_shini 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式(Iterator Design Pattern) 用来遍历集合对象。这里说的“集合对象”也可以叫“容器”“聚合对象”,实际上就是包含一组对象的对象,比如数组、链表、树、图、跳表。迭代器模式将集合对象的遍历操作从集合类中拆分出来,放到迭代器类中,让两者的职责更加单一 迭代器模式的原理和实现 阅读全文
posted @ 2021-01-20 15:32 kudo_shini 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 状态模式(State Design Pattern) 状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式,比较常用的还有分支逻辑法和查表法。 什么是有限状态机? 有限状态机,英文翻译是 Finite State Machine,缩写为 阅读全文
posted @ 2021-01-20 15:31 kudo_shini 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 职责链模式(Chain Of Responsibility Design Pattern) 模板模式、策略模式,职责链模式具有相同的作用:复用和扩展 将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。 阅读全文
posted @ 2021-01-19 18:03 kudo_shini 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy Design Pattern) 定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它们的客户端(这里的客户端代指使用算法的代码)。 工厂模式是解耦对象的创建和使用,观察者模式是解耦观察者和被观察者。策略模式跟两者类似,也能起到解 阅读全文
posted @ 2021-01-19 18:00 kudo_shini 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 模板模式(Template Method Design Pattern) 模板模式主要是用来解决复用和扩展两个问题 模板方法模式在一个方法中定义一个算法骨架,并将某些步骤推迟到子类中实现。模板方法模式可以让子类在不改变算法整体结构的情况下,重新定义算法中的某些步骤。 模板模式作用一:复用 模板模式作 阅读全文
posted @ 2021-01-19 17:59 kudo_shini 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer Design Pattern) 观察者模式(Observer Design Pattern)也被称为发布订阅模式(Publish-Subscribe Design Pattern) 在对象之间定义一个一对多的依赖,当一个对象状态改变的时候,所有依赖的对象都会自动收到通知 阅读全文
posted @ 2021-01-19 17:58 kudo_shini 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweight Design Pattern) 享元模式原理与实现 享元模式的意图是复用对象,节省内存,前提是享元对象是不可变对象。 当一个系统中存在大量重复对象的时候,如果这些重复的对象是不可变对象,我们就可以利用享元模式将对象设计成享元,在内存中只保留一份实例,供多处代码引用。 它 阅读全文
posted @ 2021-01-19 14:48 kudo_shini 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 组合模式(Composite Design Pattern) 主要是用来处理树形结构数据 将一组对象组织(Compose)成树形结构,以表示一种“部分 - 整体”的层次结构 组合模式的设计思路,与其说是一种设计模式,倒不如说是对业务场景的一种数据结构和算法的抽象。其中,数据可以表示成树这种数据结构, 阅读全文
posted @ 2021-01-19 14:47 kudo_shini 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 门面模式/外观模式(Facade Design Pattern) 门面模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用。 门面模式的原理与实现 假设有一个系统 A,提供了 a、b、c、d 四个接口。系统 B 完成某个业务功能,需要调用 A 系统的 a、b、d 接口。利用门面模式,我们提 阅读全文
posted @ 2021-01-19 14:46 kudo_shini 阅读(48) 评论(0) 推荐(0) 编辑