架构设计

  • Published on
    在金庸笔下的江湖,英雄豪杰并肩行,各派门派秘籍争奇斗艳,构筑起一幅错综复杂、纷争不断的武侠世界。这些门派的秘籍,如同他们武学修为的灵魂,指引着他们的行为准则和战斗策略。设计模式中的六大原则,就如同武侠小说中的武林秘籍,为我们在设计复杂系统时提供了宝贵的指导。
  • Published on
    策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。这种模式使得算法的变化不影响使用算法的客户。策略模式提供了在运行时选择算法的机制,增加了系统的灵活性。
  • Published on
    迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种方法顺序访问一个聚合对象中的各个元素,而无需暴露该对象的内部表示。通过迭代器模式,可以对不同的数据结构进行遍历,而不需要了解这些数据结构的内部实现。
  • Published on
    访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不修改对象结构的前提下定义作用于这些对象的新操作。它通过将操作行为从对象中分离出来,放置在一个访问者(Visitor)对象中,使得行为可以动态地添加到对象结构中。这个模式特别适用于对象结构较为稳定,而行为规则频繁变化的场景。
  • Published on
    模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
  • Published on
    状态模式(State Pattern)是一种行为型设计模式,它允许对象在内部状态发生改变时改变其行为,对象看起来好像修改了它的类。状态模式的主要目的是使得状态转换的逻辑集中管理,通过引入状态对象,使得状态切换和行为变化变得更加可维护和扩展。
  • Published on
    观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,其所有依赖者(观察者)都会收到通知并自动更新。观察者模式广泛应用于各种场景,例如事件处理系统、订阅通知系统和MVC架构等。
  • Published on
    备忘录模式(Memento Pattern)是一种行为型设计模式,允许在不破坏封装性的前提下,捕获对象的内部状态,并在将来需要时恢复到原先的状态。主要应用于支持撤销和恢复操作的应用程序中,例如文本编辑器、游戏存档系统等。
  • Published on
    中介者模式(Mediator Pattern)是一种行为型设计模式,它通过引入一个中介者对象,来封装一系列对象之间的交互操作,从而使这些对象不再相互直接引用,降低了对象之间的耦合度。这使得一个对象的变化可以独立于其他对象的变化,更加灵活和可拓展。
  • Published on
    解释器模式(Interpreter Pattern)是一种行为型设计模式,它提供了一种方法来定义语言的文法,并且通过解释这些语句来实现该语言的语法分析和执行。主要应用于编译器、查询语言和报告生成等场景。
  • Published on
    随着 React 18 的发布,引入了一个新的 Hook —— useSyncExternalStore。它旨在解决一些状态管理中的痛点,尤其是在使用外部存储系统(如 Redux,Zustand,或者自定义的存储)时的状态订阅与同步问题。在接下来的章节中,我们将结合 React 源码详细讨论 useSyncExternalStore 的实现和运行机制。
  • Published on
    命令模式(Command Pattern)是一种行为型设计模式,它将请求或操作封装成一个对象,从而使得可以用不同的请求、队列或日志来参数化其他对象。同时,它还支持可撤销的操作。
  • Published on
    责任链模式是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免请求发送者与多个请求处理者耦合在一起。这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。
  • Published on
    Zustand 是一个轻量级的状态管理库,其名字在德语中意为“状态”。相较于其他复杂的状态管理方案,Zustand 提供了一种更简单、更直观的方式来管理 React 应用的状态。接下来,我们将通过源码解析,一步步深入到 Zustand 的源码世界。
  • Published on
    在软件设计中,代理模式(Proxy Pattern)是一种结构型设计模式。它为其他对象提供一种代理,并由代理对象控制对原对象的访问。代理模式常用于延迟对象的创建、控制对对象的访问以及提高系统的安全性。
  • Published on
    享元模式是一种结构型设计模式,关注于通过共享机制来有效地支持大量细粒度对象的复用,以减少应用程序的内存使用。这种模式尤其适用于那些对象数量众多,且对象状态大部分可以外部化的场景。
  • Published on
    在软件设计中,外观模式(Facade Pattern)是一种结构型设计模式。它为子系统中的一组接口提供了一个统一的高层接口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。通过构建一个与客户端交互的外观接口,隐藏子系统的复杂性,从而使得子系统更易于使用和维护。
  • Published on
    在软件设计中,装饰器模式(Decorator Pattern)是一种结构型设计模式。它允许向一个现有对象添加新的功能,同时又不改变其结构。装饰器模式通过创建一个装饰类来包装原始类,从而使得原始类和装饰类可以独立变化。
  • Published on
    在软件设计中,组合模式(Composite Pattern)是一种结构型设计模式。它的主要目的是将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。这在处理复杂的嵌套结构时尤为有用,例如文件系统、组织架构、图形处理等。
  • Published on
    在软件设计中,桥接模式(Bridge Pattern)是一种结构性设计模式。它的主要目的是将抽象部分与实现部分分离,使它们能够独立变化。这种模式通过引入抽象层,减少了抽象与实现之间的耦合,从而实现更灵活的代码设计。
  • Published on
    适配器模式(Adapter Pattern)是一种结构性设计模式,通过在目标接口和现有接口之间引入适配器类,将不兼容的接口转换为兼容接口,从而使得原本无法直接协作的类可以一起工作。
  • Published on
    创建型设计模式主要关注于对象的创建过程,解决在软件开发中对象创建问题。通过不同的创建型设计模式,我们可以灵活地创建对象,提高代码的可维护性、可扩展性和复用性。
  • Published on
    在软件设计中,原型模式(Prototype Pattern)是一种创建型设计模式。它的主要思想是通过复制已有的实例来创建新对象,而不是通过类构造器来创建。这种模式特别适用于对象的创建代价较高,或者需要多个几乎相同的对象时。通过原型模式,我们可以高效地创建对象,并且更灵活地管理对象的状态。
  • Published on
    在软件设计中,建造者模式(Builder Pattern)是一种创建复杂对象的设计模式。它的主要思想是将对象的构造过程分离出来,使得同样的构建过程可以创建不同的表示。
  • Published on
    在软件设计中,工厂模式(Factory Pattern)是一种创建对象的设计模式。它的主要思想是定义一个接口或基类,通过该接口或基类让子类决定实例化哪一个具体类。工厂方法使得实例化过程延迟到子类。本文将介绍工厂模式、抽象工厂模式,并探讨它们在前端开发中的应用场景和一些典型案例。
  • Published on
    在软件开发过程中,我们经常会遇到一些需要全局唯一的对象。这些对象可能是配置文件管理器、数据库连接池、日志处理器等。这时,单例模式(Singleton Pattern)就派上用场了。单例模式确保一个类只有一个实例,并提供一个全局访问点。
  • Published on
    函数式编程是一个强大且日益流行的编程范式,它将函数作为程序构建的基本单元,并强调使用纯函数和不可变数据来编写代码。在JavaScript中,函数式编程的概念可以帮助开发者编写出更简洁、更可维护的代码。本文将深入探讨函数式编程在JavaScript中的应用,帮助你理解其核心概念,特性,以及如何在日常开发中实践。
  • Published on
    依赖注入(DI)是一种常见的软件设计模式,用于管理组件之间的依赖关系。Visual Studio Code(VS Code)作为一个大型的、模块化的开源编辑器,也采用了这一模式来组织其众多的服务和组件。本文将通过详细解读VS Code源代码中的依赖注入部分,来理解这个系统是如何工作的。