设计模式
文章平均质量分 83
熬夜的王
一个勇往直前的程序员!
展开
-
《Java设计模式学习》模版模式
模板模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为一个或多个步骤提供实现。模板模式是一种通过把不变的行为搬移到超类,去除子类中的重复代码来提高代码复用性的技术。在模板模式中,有两种类型的方法:抽象方法和具体方法。抽象方法由子类实现,而具体方法由超类实现。具体方法可以调用抽象方法,但是抽象方法不能调用具体方法。模板模式是一种非常有用的设计模式,它可以使代码更加灵活、易于维护和扩展。在模板模式中,超类定义了算法的骨架,而子类则实现了具体步骤。原创 2023-06-11 22:19:59 · 273 阅读 · 0 评论 -
《Java设计模式学习》策略模式
策略模式是一种行为型设计模式,它允许你定义一系列算法,将每个算法都封装起来,并使它们可以相互替换。这种模式使得算法的变化不会影响到使用算法的客户端。在策略模式中,每个算法都被封装在一个独立的类中,并实现了一个公共的接口。客户端可以根据需要选择不同的算法来执行某个操作。策略模式是一种非常有用的设计模式,它可以使代码更加灵活、易于维护和扩展。在策略模式中,每个算法都被封装在一个独立的类中,并实现了一个公共的接口。客户端可以根据需要选择不同的算法来执行某个操作。原创 2023-06-07 22:34:49 · 252 阅读 · 0 评论 -
《Java设计模式学习》状态模式
状态模式是一种行为型设计模式,它允许对象在内部状态改变时改变它的行为。这种模式把状态对象和主体对象分离开来,使得状态转换变得更加清晰明了。在状态模式中,一个对象的行为取决于它的状态。当一个对象的状态改变时,它的行为也会随之改变。这种模式将状态封装在独立的类中,并将对象委托给它们,以便在状态发生改变时能够更换状态对象。状态模式是一种非常有用的设计模式,它可以使代码更加清晰、易于维护和扩展。在状态模式中,每个状态都是一个独立的类,它封装了与该状态相关的行为。主体对象则将状态委托给状态对象处理。原创 2023-06-05 22:27:00 · 253 阅读 · 0 评论 -
《Java设计模式学习》观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生改变时,它的所有观察者都会收到通知并进行相应的处理。在观察者模式中,主题对象通常被称为被观察者(Observable),而观察者对象则被称为观察者(Observer)。被观察者对象会维护一个观察者列表,当自身状态发生改变时,会遍历观察者列表并调用每个观察者的更新方法来通知它们。原创 2023-05-28 22:40:45 · 161 阅读 · 0 评论 -
《Java设计模式学习》备忘录模式
备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获对象的内部状态,并在该对象之外保存这个状态,以便以后可以将该对象恢复到先前的状态。备忘录模式基于三个核心组件:Originator(发起人)、Memento(备忘录)和Caretaker(管理器)。Originator负责创建一个备忘录对象,用于保存其内部状态。Memento是一个纯数据对象,它包含了Originator的内部状态。原创 2023-05-23 23:23:19 · 62 阅读 · 0 评论 -
《Java设计模式学习》中介者模式
中介者模式是一种行为型模式,它定义了一个中介者对象,该对象封装了一组对象之间的交互,并促进了这些对象之间的松耦合关系。中介者模式的目的是减少对象之间的直接依赖关系,从而提高系统的可维护性和可扩展性。中介者模式的核心思想是封装对象之间的交互,并将这些交互转移到中介者对象中。这样做的好处是,当一个对象发生变化时,只有中介者对象需要进行修改,而不需要修改所有与该对象交互的其他对象。中介者模式是一种非常有用的设计模式,它可以帮助我们解决对象之间的紧耦合关系和复杂交互问题。原创 2023-05-23 00:01:25 · 267 阅读 · 2 评论 -
《Java设计模式学习》迭代器模式
迭代器模式(Iterator Pattern)是一种行为型设计模式,它允许我们遍历并访问一个聚合对象的元素,而不需要暴露该对象的底层表示。该模式提供了一种统一的方式来访问集合中的所有元素,而不用关心底层数据结构。在Java中,迭代器模式已经被广泛应用于集合框架中,如List、Set、Map等。这些集合都实现了java.util.Iterator接口,该接口定义了一些方法来遍历集合中的元素。总之,迭代器模式是一种非常实用的设计模式,它可以帮助我们更加方便地遍历集合中的元素,提高代码的可读性和可维护性。原创 2023-05-21 22:59:45 · 421 阅读 · 0 评论 -
《Java设计模式学习》命令模式
命令模式(Command Pattern)是一种行为设计模式,它将请求封装成对象,从而允许您使用不同的请求、队列或日志请求来参数化其他对象。命令模式还支持撤销操作。在命令模式中,有四个主要的角色:命令接口、具体命令、命令发送者和命令接收者。其中,命令接口定义了执行请求的方法,具体命令实现了命令接口,并包含了执行命令所需要的所有信息,命令发送者负责创建具体命令并将其发送给命令接收者执行,命令接收者则负责执行具体命令。命令模式可以帮助我们将请求封装成对象,从而使得我们可以更加灵活地处理请求。原创 2023-05-15 22:56:18 · 165 阅读 · 1 评论 -
《Java设计模式学习》责任链模式
责任链模式是一种行为型设计模式,它利用一系列对象来处理特定的请求或事件,并沿着一个链传递,直到有一个对象能够处理它。责任链模式可以解耦请求的发送者和接收者,同时也可以简化代码,提高灵活性和可维护性。它通常应用于一些需要动态处理请求的场景,例如日志记录、认证、缓存等。在责任链模式中,我们创建一个处理请求的对象链,并在其中设置每个对象的下一个对象。当请求通过链传递时,每个对象都有可能对请求进行处理,并决定是否将请求转发给下一个对象。原创 2023-05-11 23:13:55 · 104 阅读 · 0 评论 -
《Java设计模式学习》代理模式
代理模式是一种结构型设计模式,它允许对象通过代理对象控制其对于另一个对象的访问,以加强或限制其行为。代理对象充当了客户端与目标对象之间的中间层,客户端通过代理对象间接地与目标对象进行交互,从而控制对目标对象的访问。可以减少客户端与目标对象之间的直接交互,从而保证了目标对象的安全性。代理对象可以实现客户端无法实现的功能,从而增强了目标对象的功能。可以对目标对象的访问进行缓存,从而提高程序的执行效率。可能会增加代码的复杂度和程序的开销。代理对象和目标对象必须实现相同的接口,从而带来一定的限制。原创 2023-05-06 23:25:39 · 63 阅读 · 0 评论 -
《Java设计模式学习》享元模式
享元模式(Flyweight Pattern)是一种结构型设计模式,是一种为提高系统的性能而开发的设计模式。它通过共享大量细粒度对象来减少内存占用,从而达到减少内存使用和提升系统性能的目的。在 Java 中,String 类就是应用了享元模式的典型例子。要理解享元模式,我们需要想象一个场景:你正在创建一个勾勒城市街道,包括许多相同的道路标记。每条路标记都有相同的颜色、形状和大小,但位置稍有不同。如果你用一个个不同的对象来表示不同的路标记,那么将会生成大量的内存占用。原创 2023-05-04 22:34:10 · 70 阅读 · 0 评论 -
《Java设计模式学习》外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,隐藏了一个系统的复杂性,允许客户端通过一个简单的接口来访问系统。外观模式不仅隔离了客户端与系统的复杂内部实现,还提供了统一的接口,使得系统更加易于使用和维护。总之,外观模式通过封装子系统或模块,为客户端提供简单的接口,隐藏系统的复杂性,降低系统的耦合度,提高系统的可维护性和灵活性。在软件开发中,外观模式是一种十分常用的设计模式,对于大型系统的开发尤为重要。!!原创 2023-04-24 23:00:16 · 164 阅读 · 0 评论 -
《Java设计模式学习》装饰器模式
装饰器模式是一种结构型设计模式,它可以让你在运行时动态地为对象添加额外的功能,而无需对它进行子类化。这种模式从某种程度上可以看作是对继承的一种有益补充,它使得我们可以在不改变对象自身的情况下,增加一些新的行为来责任链式的执行,是一种比继承更为灵活的方式。装饰器模式背后的思想是将对象及其行为分离,以便能够轻松地为对象添加新的行为。对象及其行为都是独立的,这允许我们为同一个对象添加不同的行为,而无需创建新的子类。这使得装饰器模式比继承更具有灵活性和扩展性。原创 2023-04-23 22:59:15 · 59 阅读 · 0 评论 -
《Java设计模式学习》组合模式
组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分-整体”的层次结构。它能够以一致的方式处理单个对象和对象组合,并且可以通过递归方式将操作应用于整个对象树。组合模式的基本思想是将对象组织成树形结构,表示“整体-部分”的关系。树形结构由两种基本节点组成:叶子节点和组合节点。叶子节点是组合的最小部分,它不包含子节点;组合节点是由多个子节点组成的复合节点,它可以包含叶子节点和其他组合节点。原创 2023-04-20 00:24:13 · 58 阅读 · 0 评论 -
《Java设计模式学习》桥接模式
桥接模式是一种常用的设计模式,它的主要作用是将抽象部分与实现部分分离开来,从而使得它们可以独立地变化。在桥接模式中,抽象部分通常是指高层次的抽象类或接口,而实现部分通常是指底层次的具体实现类。通过将抽象部分和实现部分分离开来,桥接模式可以让它们独立地变化,从而达到让设计更加灵活、可扩展的目的。例如,假设我们现在要设计一个图形绘制程序,其中包含多种图形类型,如矩形、圆形、三角形等等。我们希望能够让用户根据自己的需求来选择具体的图形类型,并且能够在不修改原有代码的情况下扩展新的图形类型。原创 2023-04-17 22:19:25 · 376 阅读 · 0 评论 -
《Java设计模式学习》适配器模式
适配器模式是一种结构型设计模式,用于将不同接口的对象进行转换,以便于这些不同接口的对象可以协作工作。其中,适配器充当了连接两种接口的中间件角色,其担任转换接口的任务,让两个不同的接口能够配合工作,同时不破坏原有代码结构。适配器模式是一种解决不兼容接口的设计模式。通过将一个类的接口转换为另一个类所期望的接口,从而使两个不兼容的接口能够协同工作。适配器模式的实现可以通过组合和继承两种方式来实现。适配器模式在实际开发中经常用于对现有的代码进行改进,提高重用性和灵活性。原创 2023-04-12 00:00:45 · 804 阅读 · 1 评论 -
05《Java设计模式学习》单例模式
单例模式是一种创建型设计模式,它可以确保一个类只有一个实例,并提供一个全局访问点。单例模式通常用于控制资源的访问,例如数据库连接、线程池等。单例模式的核心思想是通过一个私有构造函数和一个静态方法来创建和获取单例对象。私有构造函数可以确保外部无法直接创建对象,静态方法可以确保只有一个实例被创建,并提供一个全局访问点。根据上述两段话可以看出,单例模式有以下几个特点:1.全局该类只有一个实例。2.全局只有一个访问点。3.私有构造函数无法直接创建对象,只能通过一个全局访问点进行访问。原创 2023-04-06 00:37:36 · 75 阅读 · 0 评论 -
《Java设计模式学习》原型模式
原型模式是指通过复制已有对象的方式来创建新对象的一种设计模式。他解决的是我们在代码中创建很多重复的类,通过实现Cloneable接口类,可以直接调用clone方法,将对象进行复制。或者是通过重写Object类的Clone方法,可以自定义复制的形式。这里的基类或实体类是指我们在编码过程中需要重复创建的类,在这里直接使用实体类。在clone方法中,在复制过来的name后面加个长度为1的随机数。/**} }在这个示例中,我们定义了一个Prototype抽象类并实现了Cloneable接口。原创 2023-04-02 01:31:29 · 60 阅读 · 0 评论 -
《Java设计模式学习》建造者模式
建造者模式(Builder Pattern)是一种对象创建型设计模式,它主要用于将一个复杂的对象构建过程与其表示分离。该模式的核心思想是将一个复杂对象的创建过程分解为多个简单的步骤,并封装每个步骤的构建逻辑,然后通过一个导演者(Director)类依次执行这些步骤,最终构造出一个完整的复杂对象。在建造者模式中,要求产品类本身不直接参与到对象的创建过程中,而是由建造者角色完成对产品的创建,即建造者将各个部件组装成一个完整的产品。原创 2023-03-31 21:14:56 · 139 阅读 · 0 评论 -
《Java设计模式学习》抽象工厂模式
抽象工厂模型(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类。抽象工厂模型通常用于创建复杂的对象,例如整个产品族,而不是单个产品。它可以帮助我们实现高内聚、低耦合的设计,提高代码的可维护性和可扩展性。抽象工厂模型的核心思想是将对象的创建和使用分离开来,通过一个工厂接口来创建一系列相关的对象,它的优点在于可以隐藏对象的具体实现,而不需要知道具体的实现类。原创 2023-03-28 23:04:07 · 88 阅读 · 0 评论 -
《Java设计模式学习》工厂模式
在这里,包括在很多的书中,我们都会看到工厂模式的Demo都很简单。但是我们在实际开发过程中,却往往很少用到类似的设计模式。 但是大家在看到这篇文章的时候,希望大家可以动手敲一下。也许在敲击的过程中,你能获取到一定的灵感,在未来的工作中能够有所帮助。原创 2023-03-26 22:53:13 · 76 阅读 · 0 评论