
设计模式
文章平均质量分 94
墨子白
修学储能,先博后渊
展开
-
设计模式简介
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。原创 2023-04-04 21:17:38 · 121 阅读 · 0 评论 -
设计模式行为型——访问者模式
访问者模式(Visitor Pattern)属于行为型设计模式,它允许在不修改现有对象结构的前提下,定义对这些对象执行操作的新操作。访问者模式将数据结构和操作分离,使得操作可以独立变化。访问者模式基本思想是,针对系统中拥有固定类型数的对象结构(元素),在其内提供一个 accept()方法来接受访问者对象的访问。不同的访问者对同一个元素的访问内容是不同,使得相同的元素集合可以产生不同的数据结果。原创 2023-08-09 22:18:32 · 2396 阅读 · 1 评论 -
设计模式行为型——模板模式
模板模式(Template Pattern)属于行为型设计模式,又叫模版方法模式(Template Method Pattern),是指定义一个算法的骨架,并允许子类为一个或多个步骤提供实现。模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。模板模式,其主要的的思想就是做一个模板,提供给客户端进行调用。原创 2023-08-09 13:52:54 · 782 阅读 · 0 评论 -
设计模式行为型——策略模式
策略模式(Strategy Pattern)属于行为型设计模式,其定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。通过使用策略模式,可以在运行时根据需要选择不同的算法,而不需要修改客户端代码。在策略模式中,创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。原创 2023-08-08 21:48:33 · 233 阅读 · 0 评论 -
设计模式行为型——状态模式
状态模式(State Pattern)属于行为型设计模,也叫作状态机模式(StateMachine Pattern),对有状态的对象,把复杂的“判断逻辑”提取到不同的状态对象中,允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。状态模式中类的行为是由状态决定的,在不同的状态下有不同的行为。其意图是让一个对象在其内部改变的时候,行为也随之改变。状态模式的核心是状态与行为绑定,不同的状态对应不同的行为。原创 2023-08-07 21:13:17 · 2428 阅读 · 0 评论 -
设计模式行为型——观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。观察者模式的别名包括发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。原创 2023-08-07 10:53:20 · 1712 阅读 · 0 评论 -
设计模式行为型——备忘录模式
备忘录模式(Memento Pattern)又叫做快照模式(Snapshot Pattern)或Token模式(Token Pattern),属于行为型设计模式。在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销操作,其中就使用了备忘录模式。原创 2023-08-05 10:45:10 · 938 阅读 · 0 评论 -
设计模式行为型——中介者模式
中介者模式(Mediator Pattern)属于行为型模式,是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。用一个中介者对象来封装一系列的对象交互,中介者使各对象不需要显示地相互引用,且可以独立地改变它们之间的交互。中介者模式又叫调停者模式,是一种对象行为型模式。原创 2023-08-04 09:48:09 · 797 阅读 · 0 评论 -
设计模式行为型——迭代器模式
迭代器模式(Iterator Pattern)属于行为型模式,其提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示,即不需要知道集合对象的底层表示。编程环境中非常常用的设计模式。原创 2023-08-03 22:50:39 · 783 阅读 · 0 评论 -
设计模式行为型——解释器模式
解释器模式(Interpreter Pattern)属于行为型模式,其提供了评估语言的语法或表达式的方式。给定一个语言,解释器模式可以定义出其文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。解释器中涉及到的文法,就是符合一定规则的语句结构.其实质是把语言中的每个符号定义成一个(对象)类,从而把每个程序转换成一个具体的对象树。原创 2023-08-02 22:01:51 · 673 阅读 · 0 评论 -
设计模式行为型——命令模式
命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。是对命令的封装,每一个命令都是一个操作,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。在软件系统中,方法的请求者与方法的实现者总是存在着紧密的耦合关系,这不利于扩展和维护。如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合,变得很重要,命令模式能很好地解决这个问题。原创 2023-08-01 21:31:59 · 569 阅读 · 0 评论 -
设计模式行为型——责任链模式
责任链模式(Chain of Responsibility Pattern)又叫职责链模式是一种行为型设计模式,它通过建立一个对象链来依次处理请求,将请求的发送者和接收者解耦,并允许多个对象都有机会处理请求。其目的是为了解决请求端与实现端的解耦。其实现过程类似递归调用。责任链模式的核心是定义责任链节点的接口以及节点之间的关系,它允许动态的增加和修改责任链中的节点。原创 2023-07-29 17:57:44 · 1146 阅读 · 0 评论 -
设计模式结构型——享元模式
享元模式(Flyweight Pattern)是一种结构型设计模式,享元模式中的“享元”指被共享的单元,享元模式通过复用对象,以达到节省内存的目的。要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式。其主要解决的问题是创建大量相似对象时的内存开销过大。其意图运用共享技术有效地支持大量细粒度的对象。解决在有大量对象时,有可能会造成内存溢出问题,把其中共同的部分抽象出来,查找时直接返回在内存中已有的对象,没有才重新创建,避免重新创建已有对象。原创 2023-07-22 09:44:28 · 257 阅读 · 0 评论 -
设计模式结构型——外观模式
外观模式(Facade Pattern):又叫作门面模式,归属于结构型模式,提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,即为子系统中的一组接口提供一个一致的界面,让子系统更容易使用。外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度。原创 2023-07-20 15:15:45 · 1745 阅读 · 0 评论 -
设计模式结构型——装饰器模式
装饰器模式(Decorator Pattern),又称为包装模式(Wrapper Pattern)是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),即允许向一个现有的对象添加新的功能,属于结构型模式。装饰器模式的核心是功能扩展,使用装饰器模式可以透明且动态地扩展类的功能。装饰器模式通过将对象包装在装饰器类中,以便动态地修改其行为。其创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。原创 2023-07-19 20:32:16 · 664 阅读 · 0 评论 -
设计模式结构型——组合模式
组合模式(Composite Pattern),又叫部分整体模式(Part-Whole Pattern),属于结构型模式的一种,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性,是一种对象结构型模式。该模式创建了一个包含自己对象组的树形结构,其提供了修改相同对象组的方式,使得用户对单个对象和组合对象的使用具有一致性。原创 2023-07-14 19:55:57 · 763 阅读 · 0 评论 -
设计模式结构型——过滤器模式
过滤器模式(Filter Pattern)又称标准模式(Criteria Pattern)是一种设计模式,属于结构型模式。这种模式允许开发人员使用不同的标准来过滤一组对象,通过运算逻辑以解耦的方式将它们连接起来。过滤器模式可结合多个标准来获得单一标准。说白了,就是按条件筛选一组对象出来。原创 2023-07-12 15:56:10 · 2765 阅读 · 0 评论 -
设计模式结构型——桥接模式
桥接(Bridge)模式是用于把抽象化与实现化解耦,使得二者可以独立变化。把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。其归属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。说⽩了核⼼实现也就是在A类中含有B类接口,通过构造函数传递B类的实现,这个B类就是设计的桥。桥接模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。原创 2023-07-09 14:41:08 · 360 阅读 · 0 评论 -
设计模式结构型——适配器模式
适配器模式(Adapter)其别名为包装器模式(Wrapper),将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。在适配器模式中,通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器、类适配器、接口适配器三种。原创 2023-06-08 17:01:04 · 2763 阅读 · 1 评论 -
设计模式创建型——原型模式
原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式之一。用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节。原型模式简化了创建对象的过程,通过一个已有的实例进行复制提高了创建实例的效率,具有较好的可扩展性。原创 2023-04-11 10:01:24 · 437 阅读 · 0 评论 -
设计模式创建型——建造者模式
建造者模式(Builder Pattern)又叫生成器模式,使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。在一些基本部件不会变,而其组合经常变化的时候,一般会使用到建造者模式。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;原创 2023-04-20 11:27:22 · 248 阅读 · 0 评论 -
设计模式创建型——抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式,用于产品族的构建。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂是指当有多个抽象角色时使用的一种工厂模式。抽象工厂模式可以向客户端提供一个接口,使客户端在不必指定产品的具体情况下,创建多个产品族中的产品对象。原创 2023-04-06 17:03:37 · 9316 阅读 · 2 评论 -
设计模式创建型——工厂模式
工程模式是通过工厂获取一个一个的新对象。定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。原创 2023-04-04 15:42:24 · 5329 阅读 · 0 评论 -
设计模式创建型——单例模式
属于创建类型的一种常用的软件设计模式。通过单例模式的方法创建的类在当前进程中只有一个实例,该类自行实例化并向整个系统提供这个实例的公共访问点,除了该公共访问点,不能通过其他途径访问该实例。原创 2023-04-02 11:31:59 · 189 阅读 · 0 评论