设计模式
文章平均质量分 65
qq_34893654
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模板方法模式
说白了,就是定义一套标准(接口),接口中的方法就是模板,一个base类实现这个接口,子类继承base类,base类实现公用的方法, 子类延迟实现想重写的方法模板方法模式的核心思想是将算法的实现分解成一系列步骤,其中某些步骤的实现可以延迟到子类中,这些步骤称为“钩子”。模板方法模式由一个抽象类和若干个具体子类组成。抽象类中定义了模板方法,具体子类实现了其中的一些步骤。原创 2023-02-28 09:42:06 · 128 阅读 · 0 评论 -
代理模式Proxy
代理模式(Proxy Pattern)是一种结构型设计模式,它允许对象通过代理来控制对其它对象的访问。在代理模式中,代理对象与实际对象具有相同的接口,因此代理对象可以替代实际对象使用,而且客户端不需要知道实际对象的存在。代理对象负责与实际对象交互,它可以在调用实际对象之前或之后执行一些操作,如验证权限、缓存数据等。原创 2023-02-28 09:42:10 · 296 阅读 · 0 评论 -
迭代设计模式
设计模式中的迭代器模式(Iterator Pattern)是一种行为型模式,它允许客户端通过迭代器访问聚合对象中的元素,而无需了解底层的实现细节。迭代器模式通常由以下几个角色组成:迭代器(Iterator):定义访问和遍历聚合对象元素的接口。具体迭代器(Concrete Iterator):实现迭代器接口,提供具体的访问和遍历聚合对象元素的实现。聚合对象(Aggregate):定义一个或多个迭代器的接口,通常包含一个用于获取迭代器的方法。原创 2023-02-28 09:42:14 · 144 阅读 · 0 评论 -
状态模式State Pattern
状态模式(State Pattern)是一种对象行为型模式,它主要解决的是一个对象在其内部状态发生改变时会导致其行为的变化,通过将状态封装成独立的对象,可以使得状态的变化独立于对象的行为,从而实现状态和行为之间的解耦。状态模式通常包含以下角色:Context(上下文):定义客户端感兴趣的接口,维护一个对具体状态类的实例,以便于客户端调用具体状态类的方法。State(抽象状态):定义一个接口以封装与Context的一个特定状态相关的行为。ConcreteState(具体状态):实现State接口。原创 2023-02-28 09:42:18 · 137 阅读 · 0 评论 -
责任链模式
责任链模式是一种行为型设计模式,它将多个对象组成一条责任链,请求在责任链上传递,直到有一个对象处理该请求或者请求到达链的末尾而无法处理。责任链模式的主要目的是解耦发送者和接收者之间的关系,将其通过一个链条连接起来,让请求在链条上流动。在责任链模式中,通常会定义一个抽象处理者类(Handler),它包含一个指向下一个处理者的引用。每个具体的处理者类(ConcreteHandler)实现处理请求的方法,如果它不能处理该请求,则将请求传递给下一个处理者。原创 2023-02-28 09:41:40 · 187 阅读 · 0 评论 -
适配器模式
这个适配器类型将外部邮件服务的接口适配成了内部系统需要的接口,通过调用外部邮件服务的 SendEmail 方法来实现 SendMail 方法。在这个示例中,适配器模式被用来将一个外部服务的接口适配成内部系统的接口。通过这种方式,内部系统就可以使用适配后的接口来调用外部服务,而不需要修改内部系统的代码。假设内部系统需要调用外部的邮件服务,但是外部邮件服务的接口与内部系统的接口不一致,此时可以通过适配器模式将外部接口适配成内部系统需要的接口。实际就是接口转换而已适配器模式的应用通常不需要太多的代码。原创 2023-02-27 12:22:49 · 72 阅读 · 0 评论 -
适配器模式
在这个示例中,适配器模式被用来将一个外部服务的接口适配成内部系统的接口。通过这种方式,内部系统就可以使用适配后的接口来调用外部服务,而不需要修改内部系统的代码。适配器模式可以让系统更加灵活,降低耦合度,使系统更容易扩展和维护。这个适配器类型将外部邮件服务的接口适配成了内部系统需要的接口,通过调用外部邮件服务的。// 将外部邮件服务的接口适配成内部系统需要的接口。类型来发送邮件,而不需要关心外部邮件服务的具体实现。// 创建外部邮件服务的实例。现在,内部系统就可以使用。原创 2023-02-28 09:43:03 · 105 阅读 · 0 评论 -
策略模式Strategy
在上述示例中,Operation 是一个策略接口,其中定义了一个 Do 方法,具体的加法、减法和乘法策略分别实现了该接口。Calculator 是一个计算器对象,包含一个策略对象的引用,通过该引用调用具体的算法,实现了运算的多态性。在策略模式中,定义了一个抽象策略类(Strategy),其中定义了一个算法的接口,具体策略类(ConcreteStrategy)继承抽象策略类,并实现其中的算法接口。策略模式通过定义一组算法,并将其封装在单独的类中,从而实现了算法的独立性。原创 2023-02-27 12:13:14 · 74 阅读 · 0 评论 -
装饰者模式
一层层往上加东西,而且东西想加就能加,不相加就不用加,非常容易在原来的基础上扩展。主要用于在不改变对象原有逻辑的情况下,动态地给对象增加新的行为。它通过把装饰行为包裹在对象外部来扩展对象的功能。这种方式的好处是,可以在不修改现有代码的情况下,给对象增加新的行为,从而增强其功能。装饰器模式通常包括一个抽象组件、具体组件、抽象装饰器和具体装饰器。抽象组件是被装饰对象的抽象类或接口,具体组件是被装饰对象的具体实现,抽象装饰器和具体装饰器则是用于扩展组件功能的类。原创 2023-02-27 12:08:40 · 143 阅读 · 0 评论 -
依赖注入模式
依赖注入(Dependency Injection,简称DI)模式是一种面向对象编程中的设计模式,它的目的是将一个对象所依赖的其他对象的创建过程,从该对象本身中分离出来,以便更好地实现解耦和可测试性。在DI模式中,对象不是通过自己创建所需要的依赖对象,而是通过构造函数、属性或接口传递进来。原创 2023-02-27 11:25:25 · 471 阅读 · 0 评论
分享