设计模式
文章平均质量分 81
23种设计模式学习;
设计模式全部代码:https://gitee.com/llsskksa_admin/design-patterns.git
.番茄炒蛋
这个作者很懒,什么都没留下…
展开
-
桥梁设计模式
Java桥梁模式(也称桥接模式)(Bridge Pattern)是一种设计模式,它将抽象和实现分离,使它们可以独立地变化.它通过一个大类或者一系列紧密关联的类拆分成两个独立的层次结构来实现这种分离,其中一个层次结构包含抽象类或接口,另一个层次结构包含实现类.桥梁模式使得抽象类和实现类可以独立地变化,从而实现了松耦合.在Java中,桥梁模式通常使用接口来定义抽象部分,使用抽象类来实现部分实现,并将它们通过组合的方式组合起来.抽象部分包含一个只想实现部分的引用,实现部分实现了抽象部分定义的接口.原创 2023-03-23 22:21:23 · 469 阅读 · 0 评论 -
享元设计模式
Java中的享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享尽可能多的对象来减少内存占用和提高性能.Java享元模式通常包含以下4种角色享元工厂(Flyweight Factory):负责创建和管理享元对象.具体享元(Concrete Flyweight):实现享元接口并存储与共享状态相关的内部状态.抽象享元(Flyweight):定义享元对象需要实现的接口或抽象类.非共享状态(Unshared State):储存享元对象的非共享状态.原创 2023-03-23 19:49:06 · 357 阅读 · 0 评论 -
解释器模式
Java解释器模式(Interpreter pattern)是一种行为设计模式,它定义了一种语言的语法表示,并定义了解释器来解释该语法.该模式的核心是**解释器(Interpreter),**它定义了一个表达式接口和具体的表达式实现类.表达式接口中定义了解释方法,具体的表达式实现类则实现了该解释方法,用于对语法进行解释.抽象表达式(Abstract Expression):定义了一个解释器需要实现的接口,通常包含一个解释方法(interpreter)用于解释表达式.原创 2023-03-22 21:24:21 · 431 阅读 · 0 评论 -
状态设计模式
Java状态模式(State Pattern)是一种面向对象的设计模式,它将对象的状态封装成独立的状态对象,并将对象的行为与状态对象解耦,它允许对象在其内部状态发生改变时,改变其行为.该模式将对象的行为封装在不同的状态对象中,而不是将所有的行为都放在一个类中.状态接口(State Interface):定义了一组与上下文对象相关的方法,这些方法将在不同状态下被具体对象实现.具体状态(Concrete State):实现了状态接口,具体状态对象是不同的状态实现.原创 2023-03-22 20:02:22 · 335 阅读 · 0 评论 -
访问者模式
Java访问者模式(Visitor Pattern)是一种行为型设计模式,它允许将算法与其所操作的对象分离.该模式定义了一个访问者对象,它可以访问不同类型的对象并执行一些操作,同时也能让你在不修改现有代码的情况下,添加新的操作.再访问者模式中,有两个重要的角色:**访问者和元素.**元素是一个对象结构的组成部分.访问者是一个表示要执行的操作的对象.访问者可以通过元素的接受方法来访问元素.抽象访问者(Visitor):定义了可以访问每个元素的访问方法.原创 2023-03-21 21:14:45 · 216 阅读 · 0 评论 -
备忘录模式
备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获并保存一个对象的内部状态,并在之后可以恢复该对象到先前的状态.该模式的核心是备忘录(Memento)类,它储存了一个对象的内部状态.原创 2023-03-20 20:10:50 · 287 阅读 · 0 评论 -
门面设计模式
Java门面模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,隐藏了复杂系统的实现细节,使得客户端可以更加容易地使用系统.原创 2023-03-19 19:07:48 · 469 阅读 · 0 评论 -
观察者模式
Java观察者模式(也称发布-订阅模式)是一种行为设计模式,用于对象之间的松散耦合,即当一个对象的状态发生变化时,其他依赖该对象的对象会被自动通知并作出相应的响应.Subject(主题):被观察的对象,维护一个观察者列表,提供添加,删除观察者的方法,以及通知所有观察者的方法.Observer(观察者):观察Subject的变化,当Subject变化时接收通知,进行相应的操作.ConcreteSubject(具体主题):实现Subject接口,维护自己状态的变化,当状态变化时通知所有的观察者.原创 2023-03-17 20:36:50 · 501 阅读 · 0 评论 -
组合设计模式
Java组合模式(Composite Pattern)是一种结构型设计模式,允许你将对象组合成树状结构,并且能像使用独立对象一样使用它们.抽象构建(Component):是组合中对象声明接口,可以包含其他对象,可以定义公共行为和管理子对象的方法.叶子节点(Leaf):是组合中的简单对象,没有包含其他对象的能力.组合节点(Composite):有叶子节点和组合节点作为子节点的对象,通常会把子节点存储到一个结合中,实现抽象构建接口中的方法.原创 2023-03-16 22:36:35 · 272 阅读 · 0 评论 -
适配器模式
Java中的适配器模式是一种结构型设计模式,她将一个类的接口转换成另一个客户端所期望的接口.适配器模式让那些不兼容的类可以一起工作,它通过不兼容接口转换成可兼容接口来实现这一点.目标接口(Target):定义客户端所期望的接口,也就是客户端需要使用的接口.源接口(Adaptee):已经存在的,不兼容的接口,也就是需要适配的接口.适配器(Adapter):将源接口转换成目标接口的类,它实现了目标接口,并持有一个源接口的引用,将客户端请求转发给源接口.原创 2023-03-16 19:51:55 · 463 阅读 · 0 评论 -
策略设计模式
Java策略模式(Strategy Pattern)是一种行为设计模式,它允许再运行时动态选择算法的行为.策略模式通过将算法封装在可互换的策略对象中,使得客户端代码能够轻松地切换算法,而无需修改原始代码.在策略模式中,每个算法都被实现为一个单独的策略类,这些策略类都实现了相同的接口,从而允许它们在运行时互相替换.在Java中,可以使用接口或抽象类来定义策略接口.然后对于每个算法,都可以创建一个具体的实现类来实现这个接口.客户端代码可以通过将不同的策略对象传递给上下文对象来选择不同的算法.原创 2023-03-15 19:28:02 · 333 阅读 · 0 评论 -
责任链模式
责任链模式是一种行为型设计模式,其目的是将请求从一个对象传递到另一个对象,直到找到能够处理该请求的对象为止.再责任链模式中,每个对象都持有对下一个对象的引用,形成一个链条.当一个请求进入这个链条时,每个对象一次判断是否有能力处理该请求,如果有,就处理该请求,如果没有就将请求传递给下一个对象.这样,直到找到能够处理该请求的对象为止,或者请求无法被任何对象处理时,责任链模式才结束.优点。原创 2023-03-14 20:27:53 · 301 阅读 · 0 评论 -
命令设计模式
Java命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使不同的请求可以进行参数化,并支持请求的排队,记录日志,撤销操作等.在命令模式中,将命令请求者(Invoker),命令接收者(Receiver)和命令对象(Command)进行了解耦,使得它们可以独立地变化.具体的说,命令对象封装了一个特定的请求和其对应的操作,Invoker对象负责调用命令来执行请求,而Receiver对象则负责实际执行命令所代表的操作.原创 2023-03-13 21:29:19 · 173 阅读 · 0 评论 -
中介者模式
Java中介者模式(Mediator Pattern)是一种行为设计模式,它可以降低多个对象之间的耦合性,通过一个中介者对象来协调这些对象的交互.在中介者模式中,多个对象之间的交互不是直接进行的,而是通过一个中介者对象来进行的.这个中介者对象封装了对象之间的交互逻辑,每个对象只需要与中介者对象进行通信,而不需要与其他对象直接进行通信.这种模式可以有效的减少代码的复杂度和维护成本,提高系统的可扩展性和可维护性.原创 2023-03-10 22:42:23 · 542 阅读 · 0 评论 -
原型设计模式
在Java中,原型模式是一种创建型设计模式,它允许通过复制一个现有对象来创建一个新对象,而不是通过创建新的对象来初始化一个对象,原型模式是一种基于克隆的设计模式,通过复制现有对象的数据来创建新的对象.原型模式需要实现Cloneable接口并重写Object类中的clone()方法,在重谢clone()方法时,需要调用super.clone()方法来创建一个新的对象,并复制原始对象中的所有属性.默认情况下,Java中的Object类提供的clone()方法会执行浅拷贝。原创 2023-03-10 21:10:19 · 423 阅读 · 0 评论 -
建造者模式
Java中的建造者模式是一种创建型设计模式,它的主要目的是为了通过一系列简单的步骤构建复杂的对象,允许创建复杂对象的不同表示形式,同时隐藏构造细节.它能够逐步构建对象,即先创建基本对象,然后逐步添加更多属性或部件,直到最终构建出完整的对象.该模式的主要思想是将对象的构造过程分解成多个步骤,每个步骤都可以独立运行,并且在每个步骤完成后都可以返回一个中间状态,然后使用一个导演类来协调这些步骤,最终创建出完整的对象.产品类(Product):被构造出来的复杂对象,它具有多个属性或部件.原创 2023-03-09 21:05:22 · 204 阅读 · 0 评论 -
模板方法模式
Java中的模板方法模式是一种行为设计模式,用于定义算法的框架并允许子类重写某些步骤,同时不改变算法的结构. 该模式基于开放/关闭原则,即对扩展开放,对修改关闭,在模板方法模式中,父类定义了一个算法的骨架,而子类可以通过实现父类的抽象方法,来自定义某些步骤的行为,整个算法步骤不会因为子类的改变而改变。原创 2023-03-09 19:47:36 · 332 阅读 · 0 评论 -
工厂设计模式
简单工厂模式(Simple Factory Pattern):使用一个工厂类来封装对象创建的过程,客户端只需要通过传递不同的参数来获取不同的产品对象,从而避免了客户端直接创建产品对象的操作工厂方法模式(Factory Method Pattern):将工厂类抽象出来,每个具体产品类对应一个具体工厂类,工厂类通过多态性来创建对应的产品对象,客户端只需要知道工厂接口及其实现类即可,可以根据需求动态切换工厂实现,扩展性更好.原创 2023-03-08 20:11:11 · 408 阅读 · 0 评论 -
jdk动态代理
之前就学过动态代理,但是很久没用有点忘了,复习一下.假设现在有一个大明星,它有唱歌和跳的本领,作为大明星是要用唱歌和跳舞来赚钱的,但是每次做节目,唱歌的时候要准备话筒;收钱;再唱歌;跳舞的时候也要准备场地;收钱;代理为什么需要代理?长什么样子?对象如果嫌身上干的事情太多的话,可以通过代理转移部分职责对象有什么方法想被代理,代理就一定有对应的方法Star/**/*** 唱歌* @return/*** 跳舞BigStar/**} /*** 唱歌* @return。原创 2023-03-06 21:16:18 · 833 阅读 · 0 评论 -
cglib代理解析
/原创 2023-03-01 20:58:43 · 635 阅读 · 0 评论 -
单例设计模式
只有一个实例:单例模式确保系统中只有一个实例对象存在,所有对该对象的访问都是对同一个对象的引用全局访问:单例模式可以全局访问该实例对象,避免了多个对象之间的冲突和竞争延迟初始化:单例模式通常使用延迟初始化技术,再需要的时候才创建单例对象,避免了不必要的资源浪费和性能损失,保证单例对象的正确性和可靠性线程安全:单例模式需要考虑线程安全问题,确保多线程下获取到的实例对象是同一个,避免了多线程之间的竞争和冲突。原创 2023-03-07 19:32:38 · 505 阅读 · 0 评论