Design Pattern
文章平均质量分 83
Wang's Blog
Keep learning for the innovation era.
展开
-
设计模式: 行为型之解释器模式(23)
解释器模式(Interpreter Pattern)是一种行为型设计模式,用于给定一门语言,定义它的文法的一种表示并定义一个解释器,该解释器使用该表示来解释语言中的句子这种模式按照规定的文法(语法)进行解析,使得一些重复出现的问题可以用一种简单的语言进行表达我们首先要定义语言的文法表示,这通常涉及到定义语言的语法规则和句子结构然后,我们设计一个解释器,它能够读取这些语法规则和句子,并根据这些规则进行解释或执行相应的操作。原创 2024-04-13 08:15:00 · 873 阅读 · 0 评论 -
设计模式: 行为型之访问者模式(22)
访问者模式(Visitor Pattern)是一种行为设计模式,它封装了一些作用于某种数据结构各元素的操作可以在不改变数据结构的前提下定义作用于这些元素的新的操作访问者模式适用于需要对一个对象结构中的对象进行很多不同操作同时需要避免让这些操作“污染”这些对象的类。原创 2024-04-13 06:45:00 · 653 阅读 · 0 评论 -
设计模式: 行为型之中迭代器模式(21)
迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式它提供了一种方法顺序访问一个聚合对象中各个元素,而又无须暴露该对象的内部表示,这种模式属于行为型模式迭代器模式的核心思想是将集合对象的迭代行为抽象到迭代器中,提供一致的接口使得不同的容器可以提供一致的遍历行为,而不用关心容器内元素的组成结构这种设计方式解耦了迭代与集合,使得集合对象本身无需关心遍历的逻辑,而迭代器对象则专注于遍历的实现。原创 2024-04-12 23:45:00 · 598 阅读 · 0 评论 -
设计模式: 行为型之中状态模式(20)
状态模式(State Pattern)是一种行为设计模式,它允许对象在内部状态改变时改变其行为状态模式通过为每个状态定义一个类,使得对象在其内部状态改变时,可以改变其行为。原创 2024-04-12 21:45:00 · 672 阅读 · 0 评论 -
设计模式: 行为型之中观察者模式(19)
观察者模式(Observer Pattern)是一种行为设计模式它定义了对象之间的依赖关系,当一个对象(被称为主题或发布者)的状态改变时所有依赖于它的对象(被称为观察者)都会得到通知并自动更新。原创 2024-04-12 20:30:00 · 802 阅读 · 0 评论 -
设计模式: 行为型之中介者模式(18)
中介者模式(Mediator Pattern)是一种行为设计模式,它用于减少对象之间的直接交互,从而使其可以松散耦合中介者模式通过引入一个中介者对象来协调多个对象之间的交互,使得这些对象不需要知道彼此的具体实现,只需与中介者进行通信中介者模式结构中介者(Mediator)定义了一个接口,用于与各同事对象通信具体中介者实现中介者接口,协调各个同事对象之间的交互并可以维护同事对象之间的引用关系同事类每一个同事对象都知道中介者对象,并与它通信。原创 2024-04-12 19:30:00 · 766 阅读 · 0 评论 -
设计模式: 行为型之命令模式(17)
由于命令模式引入了额外的命令对象,可能会导致请求处理的时间变长。:命令模式可以方便地实现请求的撤销与重做,只需将命令对象保存到历史记录中,然后按需执行撤销或重做操作。:客户端无需了解复杂的业务逻辑,只需调用命令对象的执行方法即可,降低了客户端的复杂性。:由于命令对象相对独立,增加新的命令比较容易,只需实现新的命令类即可,符合开闭原则。:命令模式支持命令的组合,即多个命令可以组合成一个复合命令,从而一次性执行多个操作。:如果命令的执行速度至关重要,命令模式的间接调用机制可能会引入额外的性能开销。原创 2024-04-12 12:45:00 · 803 阅读 · 0 评论 -
设计模式: 行为型之策略模式(16)
策略模式(Strategy Pattern)是一种行为设计模式,它使你能在运行时改变对象的行为该模式定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。原创 2024-04-12 08:45:00 · 395 阅读 · 0 评论 -
设计模式: 行为型之模板方法模式(15)
模板方法模式(Template Method Pattern)是一种行为设计模式它在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤// 定义抽象类,它包含了算法的框架或者说模板方法// 模板方法,定义了算法的骨架// 原语操作,留给子类去实现// 具体子类,实现抽象类中未实现的原语操作// 使用示例// 输出:// ---是抽象类,它定义了算法的模板方法和几个抽象方法。原创 2024-04-12 07:45:00 · 248 阅读 · 0 评论 -
设计模式: 行为型之责任链模式(14)
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许对象或对象集合以链式的方式组织在一起,以处理请求在责任链中,每个对象都包含对下一个对象的引用,并且都有机会处理请求当某个对象无法处理请求时,它会把请求传递给链中的下一个对象通过这种方式,请求会沿着责任链传递,直到被某个对象处理为止责任链模式的主要角色包括:抽象处理者(Handler)角色定义一个处理请求的接口。它包含一个指向下一个处理者的引用(即下一个处理者对象的链接)原创 2024-04-12 06:30:00 · 774 阅读 · 0 评论 -
设计模式: 行为型之备忘录模式(13)
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不破坏封装性的前提下捕获一个对象的内部状态,并在对象之外保存这个状态这样以后就可将该对象恢复到原先保存的状态。这种类型的设计模式属于行为模式在备忘录模式中,主要涉及三种角色:发起人(Originator)角色记录当前时刻它的内部状态,并可使用备忘录恢复内部状态发起人可以根据需要决定备忘录存储发起人的哪些状态备忘录(Memento)角色负责存储发起人对象的内部状态,并可防止发起人以外的其他对象访问备忘录。原创 2024-04-11 23:45:00 · 607 阅读 · 0 评论 -
设计模式: 结构型之外观模式(11)
外观模式(Facade Pattern)是一种结构型设计模式,它为复杂的系统、程序库或框架提供一个简单(但有限)的接口这种模式的核心理念是隐藏系统的复杂性,仅对外暴露一个简化的接口,使得外部代码能够更容易地与系统进行交互。原创 2024-04-11 19:15:00 · 534 阅读 · 0 评论 -
设计模式: 结构型之装饰器模式(12)
装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许在不改变现有类的情况下,动态地给对象添加新的职责或功能在 TypeScript 中,装饰器模式可以通过装饰器(Decorators)这一特性来实现装饰器在 TypeScript 中是一种特殊的声明,它可以附加到类声明、方法、属性或参数上装饰器使用 @expression 的形式,其中 expression 必须求值为一个函数,该函数将在运行时被调用,并且会被传入有关其装饰的声明的信息。原创 2024-04-11 21:45:00 · 798 阅读 · 0 评论 -
设计模式: 结构型之组合模式(6)
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构以表示“部分-整体”的层次结构组合模式使得客户端对单个对象和复合对象的使用具有一致性在 TypeScript 中,组合模式通常涉及到一个接口(或抽象类),它定义了用于操作组件的方法然后,有两个具体的类实现这个接口一个是叶子节点类,它表示树形结构中的基本对象另一个是组合类,它表示包含其他组件的复合对象。原创 2024-04-10 21:45:00 · 898 阅读 · 0 评论 -
设计模式: 结构型之代理模式(10)
代理模式(Proxy Pattern)是一种结构型设计模式,它提供了一种将类的功能委托给另一个类的机制在代理模式中,代理类(Proxy)充当客户端与被代理类(Real Subject)之间的中介,客户端通过代理类来间接地访问被代理类1 ) 代理模式的核心思想代理模式的核心思想是为其他对象提供一个代理以控制对这个对象的访问代理类负责在客户端与被代理类之间建立一种关系,使得客户端能够间接地访问被代理类通过这种方式,我们可以在不修改原有代码的情况下,增加额外的功能,如权限校验、日志记录、性能监控等。原创 2024-04-11 12:30:00 · 692 阅读 · 0 评论 -
设计模式: 关于编程范式的声明式和命令式编程及应用框架的开发和设计原则
编程范式的声明式和命令式编程及应用框架的开发和设计原则原创 2023-12-09 09:10:49 · 362 阅读 · 0 评论 -
设计模式: 关于项目架构,架构质量, 系统稳健性,技术选型,技术债务问题与解决方案
等产品和功能上线后,开发就没有那么紧张了,可以找个时间来处理技术债务技术债务不仅仅是研发这个部门的责任, 需要联合测试和业务部门才能实现所以,请谨慎对待技术债务,否则可能背大锅如果项目节奏正常,合格的技术负责人,架构师在提测之前就需要处理好这些问题代码review是一个重要的工作, 团队代码review是一种共同学习的方式。原创 2023-10-31 08:00:00 · 345 阅读 · 0 评论 -
设计模式: 结构型之桥接模式(9)
桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与它的实现部分分离,使得它们都可以独立地变化在TypeScript中,这种模式可以通过接口和类的组合来实现,下面将详细解释桥接模式及其在TypeScript中的应用1 ) 桥接模式的核心思想桥接模式的核心在于将抽象与实现解耦,使得它们可以独立变化通过组合的方式,而不是继承,建立抽象类与实现类之间的联系这种模式使得抽象部分和实现部分可以沿着各自的维度进行扩展,而不会相互影响2 ) 桥接模式的结构。原创 2024-04-11 08:45:00 · 1034 阅读 · 0 评论 -
设计模式: 结构型之适配器模式(8)
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一种接口,从而使得原本不兼容的类可以一起工作在开发中,适配器模式经常用于解决接口不兼容、第三方库或组件的集成等问题适配器模式通常用于以下几种情况当你想使用现有的类,但是其接口不符合你的需求当你想创建一个可以重复使用的类,可以与其他不相关的类或遗留系统协同工作。原创 2024-04-11 07:00:00 · 871 阅读 · 0 评论 -
设计模式: 软件设计的分层与软件开发注意事项
前后端分离架构其实是如何实施技术决策,用户鉴权,api接口管理和设计,api文档管理,mock的使用,BFF(服务于前端的后端,nodejs), 是否需要服务端渲染等。两者都说是基于url的变化来做子应用的切换,由此在设计的时候,微前端的架构设计可以理解为系统级架构,也可以理解为应用级架构。包括:api设计规则,访问授权的一个开放标准(OAuth)跳转token的验证, 数据传递cookie等。前端与后端的关系考虑的主要因素是:前后端分离的架构设计。包括业务的关系和协作的机制。微前端的实现形式,有两种。原创 2023-10-31 02:00:00 · 190 阅读 · 0 评论 -
设计模式: 结构型之享元模式(7)
享元模式(Flyweight Pattern)是一种用于优化性能的结构型设计模式,它通过共享对象来减少内存中对象的数量享元模式通常用于当系统中存在大量相同或相似对象时,通过共享这些对象的状态来减少内存消耗我们会充分利用类型系统的优势来确保内部分享状态和外部状态的有效区分。原创 2024-04-11 00:00:00 · 1445 阅读 · 0 评论 -
设计模式: 面向对象思想,软件设计原则与设计模式之间的关系
前后端分离架构其实是如何实施技术决策,用户鉴权,api接口管理和设计,api文档管理,mock的使用,BFF(服务于前端的后端,nodejs), 是否需要服务端渲染等。两者都说是基于url的变化来做子应用的切换,由此在设计的时候,微前端的架构设计可以理解为系统级架构,也可以理解为应用级架构。前端与后端的关系考虑的主要因素是:前后端分离的架构设计。4.1) S原则(单一职责原则)4.2) O原则(开放封闭原则)4.3) L原则(里氏置换原则)4.4) I原则(接口独立原则)4.5) D原则(依赖倒置原则)原创 2023-10-30 21:46:38 · 270 阅读 · 0 评论 -
设计模式: 创建型之原型模式(5)
这个模式十分有用,尤其是创建对象的流程赋值的时候(比如造鞋的流程),如依赖于很多设置文件(鞋子依赖哪些原材料, 不同的环境配置)等。工厂模式定义一个用于创建对象的接口,这个接口由子类(可以理解为产品线)决定实例化哪一个类(生产衣服还是鞋子)该模式使一个类的实例化延迟到了子类,也就是很多产品线在工厂里,当用的时候才告诉产品线干活。而子类可以重写接口方法(比如修改造鞋流程)以便创建的时候指定自己的对象类型(抽象工厂)并且,你会经常在程序里看到工厂方法,用于让子类定义需要创建的对象类型,也就是生产单例。原创 2018-04-06 16:40:22 · 358 阅读 · 1 评论 -
设计模式: 创建型之建造者模式(4)
建造者模式将一个复杂对象的构建和其表示相分离,使得同样的构建过程可以创建不同的表示。也就是说如果我们用了建造者模式,那么用户就需要制定需要建造的类型就可以得到他们,而具体建造的过程和细节就不需要知道了,建造者模式实际上,就是一个指挥者,一个建造者,一个指挥者调用具体建造者工作得出结果的客户。建造者模式主要用于"分步骤构建一个复杂的对象",在这其中"分步骤"是一个稳定的算法框架,而复杂对象的各个部分则经常变化。用一句话来总结就是指挥者分配任务,建造者进行开发,各司其职,稳定在大的流程里分步构建。原创 2018-04-05 12:16:25 · 347 阅读 · 1 评论 -
设计模式: 创建型之单例模式(3)
原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制现有对象(原型)来创建新对象,而不是通过类构造函数。这种模式主要用于当创建新对象的成本较高时,比如对象初始化需要执行大量计算或消耗大量内存。通过使用原型模式,可以显著提高性能,因为复制现有对象通常比重新执行所有初始化步骤要快得多。原创 2018-04-05 11:10:53 · 258 阅读 · 1 评论 -
设计模式: 创建型之工厂方法模式与抽象工厂模式(1,2)
设计模式 (Design pattern) 是一套被反复使用、思想成熟、经过分类和无数实战设计经验的总结的。使用设计模式是为了让系统代码可重用、可扩展、可解耦、更容易被人理解且能保证代码的可靠性。设计模式使代码开发真正工程化,设计模式是软件工程的基石脉络,如同大厦结构一样。只有夯实地基打好结构,才能盖好高楼大厦。为什么要有设计模式?为了代码的复用,增加可维护性设计模...原创 2018-04-04 22:47:59 · 442 阅读 · 1 评论