随笔分类 - DesignPattern
1
类之间的6种关系详解
摘要:目录依赖关联(Association)聚合(Aggregation)组合(Composition)继承(Inheritance)实现(Implementation) 在JAVA以及其他的面向对象设计模式中,类与类之间主要有6种关系,分别是:依赖、关联、聚合、组合、继承、实现,他们的耦合度依次增强。
阅读全文
行为型:迭代器模式
摘要:目录1. 基本概念2. 主要组成部分3. 实际应用4. 迭代器模式的好处5. 理解迭代器模式的思想6. 实现1. 定义迭代器接口2. 创建具体迭代器3. 定义聚合对象接口4. 实现具体聚合对象5. 使用迭代器总结 Iterator Pattern它提供了一种顺序访问集合对象内部元素的方法,而无需暴露
阅读全文
行为型:命令模式
摘要:目录核心思想优点缺点Example接口和类定义1. 命令接口2. 具体命令类3. 接收者类4. 调用者类使用示例说明 核心思想 封装请求: 将请求的每一个部分封装到一个独立的命令对象中; 解耦调用者和接收者: 调用者只需要知道如何调用命令对象,而不需要了解如何处理请求; 可扩展性: 可以很容易地增加
阅读全文
Understanding UML in seconds
摘要:目录UML结构解析开发类图类图间的关系双向关联单向关联自关联多重性关联聚合关系组合关系依赖关系案例泛化关系案例接口与实现关系案例Practies UML 是一种分析设计语言,也就是一种建模语言。 UML结构解析 UML其结构主要包括以下几个部分: 视图(View) 多个图形组成的集合; 图(Diag
阅读全文
行为型:访客模式
摘要:目录1. 基本概念2. 主要组成部分3. 代码示例1. 元素和操作2. 示例定义元素接口实现具体元素定义访客接口实现具体访客使用示例3. 总结4. 访客模式的优势 访客模式(Visitor Pattern)是一种行为设计模式,主要用于分离算法和对象结构。它允许你在不改变对象结构的情况下,增加新的操作
阅读全文
行为型:解释器模式
摘要:目录It can explain what ?How explain ?Grammar ConceptSentenceSyntax Tree终结符和非终结符解释器模式的思想解决的问题要解释的内容举个例子Key ElementsExample —— 公交车身份识别系统Interpreter Examp
阅读全文
设计模式的碎碎念
摘要:网上查到的设计模式有23种,通过归纳去认识他们也是一种不错的视角。 我这边不按照主流的观点去划分为创建型、结构型、行为型三大类 其实程序设计模式里,大多数的考虑初衷都是为了面向未来未知情况,在当前就先规划做好扩展方式,方便能让未来使用者使用方便的代码结构。 也有能节省资源的设计模式、方便解耦的设计模
阅读全文
行为型:中介模式
摘要:Mediator Pattern 就类似现实生活中的中介(中间人),房屋中介、媒婆中介、权利寻租中介... ,现实中为什么需要中介,在现实中的原因主要是两个 一为了保护双方当事人的安全,只要中介人不泄密,他们双方就可以秘密的把交易完成,并且双方都是安全的。二是买卖双方并不信任双方,但是他们都共同的信
阅读全文
结构型:桥接模式
摘要:目录What is Bridge PatternExample What is Bridge Pattern 桥接模式(Bridge Pattern),旨在将抽象部分和实现部分解耦,使它们可以独立地变化。 该模式通过将抽象和实现分离,使它们可以独立地进行扩展和修改,同时通过桥接(Bridge)将它们
阅读全文
行为型:模板模式
摘要:目录What is TemplateCompare between Template and BuilderKey ElementsSimple Example 如果把编程语言比喻成菜刀,需要处理数据是各种菜,那么菜刀就是相对灵活的,它能切花,切片,切块,...... 那么模版模式,可以类比下面的玩
阅读全文
创建型:享元模式
摘要:目录核心思想工作原理适用场景优点缺点What is Flyweight PatternComparison between prototype and FlyweightKey ElementsExample 1Example 2 享元模式在主流的标准里是放到结构大类下的,但我感觉这个模式的最终作用
阅读全文
设计模式的六大程序设计原则 + 三大分类
摘要:目录六大设计原则 + 合成复用原则依赖倒置原则(依赖抽象接口,而不是具体对象)单一职责原则(类、接口、方法)开闭原则 (扩展开放,修改关闭)里氏替换原则(基类和子类之间的关系)接口隔离原则(接口按照功能细分)最少知道原则 (类与类之间的亲疏关系)合成复用原则(Composite Reuse Prin
阅读全文
创建型:建造者模式
摘要:目录CoreKey elementsExample of House building Core 建造者模式又称为生成器模式,主要用于对复杂对象的构建、初始化,它可以将多个简单的组件对象按顺序一步步组装起来,最终构建成一个复杂的成品对象。 与工厂系列模式不同的是,建造者模式的主要目的在于把烦琐的构建
阅读全文
行为型:观察者模式
摘要:目录Oberver DefineExample Oberver Define Observer Patterns 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 核心思想 发布-订阅机制:对象之间的解耦。 动态更新:观察者可以在运行时添加或
阅读全文
结构型:组合成树状结构模式
摘要:目录核心思想组件类型工作原理适用场景优点缺点示例应用场景What is Composite Pattern关键要素Example —— 读取文件夹和文件Example —— 统计城市人口数 组合模式(Composite Pattern)的定义: 组合模式是指将对象组合成树形结构以表示“部分-整体”的
阅读全文
创建型:原型模式
摘要:目录Background knowledgeWhat is Prototype PatternKey elementsExample of Draw shape —— shallow cloneReference Background knowledge 在Java中,Cloneable 接口是一个
阅读全文
创建型:工厂模式
摘要:目录What is Factory Pattern?三种工厂模式的识别工厂模式和抽象工厂模式的关系Simple Factory PatternFactory Method PatternAbstract Factory Pattern 工厂模式定义: 工厂模式是一种创建型设计模式,它提供了一种将对象
阅读全文
创建型:单例模式
摘要:目录单例设计模式的需求场景GuideWhat is singleton 单例应该是一个入门的设计模式了。 先来复习一下Java原生的语法创建一个对象的语法: // 创建一个 Book 对象 Obj obj = new Obj(); 在 Java 中,使用 new Obj() 创建对象是常见的做法,但
阅读全文
结构型:门面模式和封装机制
摘要:如果只看代码的话,应该可以说Facade pattern(门面设计模式,也可以叫前台接待模式)是一种最简单的代码结构,不就封装吗!这玩意谁不会! 还是看它背后所蕴含的思想吧,看了之后发现背后的思想也很简单,非常好理解。 - -。 Think Encapsulation: 在物理世界中,从古代的弹药到
阅读全文
行为型:策略模式和状态模式和多态机制
摘要:目录Strategy Pattern and State PatternStrategy Pattern and PolymorphismWhat is Strategy Pattern and State PatternKey ElementsStrategy Pattern VS State P
阅读全文
1