设计模式
文章平均质量分 66
龙行天5
这个作者很懒,什么都没留下…
展开
-
桥接模式: 消息发送器设计
桥接模式是一种结构型设计模式,它将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式通过将抽象和实现分离,可以让它们可以独立地变化,从而提高系统的灵活性和可扩展性。通过桥接模式,我们可以在不修改抽象部分和实现部分的情况下,对它们进行独立的扩展和变化。这种模式特别适合用于需要支持多种平台或多种实现的情况。原创 2024-03-06 21:43:37 · 411 阅读 · 0 评论 -
状态模式:有案例就这么简单
我们有三种状态:ClosedState(关闭状态)、OpenState(开放状态)和MovingState(移动状态)。每个具体状态类实现了对应的操作方法,例如 open_doors()、close_doors() 和 move()。状态模式是一种行为设计模式,它允许对象在内部状态改变时改变它的行为。状态模式主要由三个部分组成:上下文(Context)、状态接口(State Interface)和具体状态(Concrete States)。下面是一个简单的实际例子:一个电梯系统的状态模式实现。原创 2024-03-06 21:40:13 · 482 阅读 · 0 评论 -
适配器模式
在这个案例中,AmericanSocket 是适配者类,表示美式插座;ChineseSocketAdapter 是适配器类,用于将美式插座转换成中国标准插座。通过适配器类 ChineseSocketAdapter,客户端可以通过统一的接口 insert_in_chinese_socket() 使用适配者类的功能,而无需直接调用适配者类的接口。适配器模式是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。适配器模式通常在接口不兼容的情况下使用,它允许原本不兼容的接口或者类协调起来工作。原创 2024-03-04 20:40:17 · 339 阅读 · 0 评论 -
代理模式:原来是这样子
代理模式是一种结构型设计模式,它允许通过代理对象控制对另一个对象的访问。代理模式通常在不直接访问对象或者访问对象存在某些限制时使用,它可以在客户端和目标对象之间引入一个代理对象,通过代理对象来间接访问目标对象,从而控制对目标对象的访问。在这个案例中,LabDoor 是具体主题类,表示实验室的门;SecurityDoor 是代理类,用于保护实验室门,控制对其打开操作的访问。通过代理类 SecurityDoor,可以在打开门之前执行身份验证操作。关注公众号 "字节航海家" 及时获取最新内容。原创 2024-03-04 20:37:51 · 465 阅读 · 0 评论 -
观察者模式:原来是这样子
在这个例子中,Subject 定义了主题接口,包括添加观察者、移除观察者和通知观察者的方法。ConcreteSubject 是具体主题类,实现了主题接口,并在状态发生变化时通知所有观察者。ConcreteObserver 是具体观察者类,实现了观察者接口,在实例化时将自身添加到主题的观察者列表中,当主题状态发生变化时收到通知并进行更新。观察者模式是一种行为设计模式,它定义了对象之间一对多的依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。原创 2024-03-03 11:57:56 · 710 阅读 · 0 评论 -
装饰器模式:原来一直都在用
装饰器模式是一种结构型设计模式,它允许你动态地给一个对象添加一些额外的职责,而不需要使用子类来扩展功能。装饰器模式通过创建一个包装类来包裹原始类,然后在包装类中提供额外的功能,从而实现功能的动态添加,同时也遵循了开闭原则。在Python中,装饰器通常是一个函数,它接受一个函数作为参数,并返回一个新的函数,这个新的函数在调用原始函数之前或之后执行一些额外的操作。装饰器可以用来添加日志记录、性能测试、缓存等功能,而不需要修改原始函数的代码。原创 2024-03-03 11:55:49 · 439 阅读 · 0 评论 -
工厂模式:没你想像的那么难
最后,在客户端代码中,我们根据当前操作系统选择对应的工厂,并使用工厂创建按钮和文本框,然后调用它们的渲染方法。最后,在客户端代码中,我们使用工厂对象来创建具体的形状对象,而无需直接实例化具体的产品类。假设我们有一个图形界面库,它包含按钮和文本框两种组件,我们可以根据不同的操作系统(例如 Windows 和 macOS)创建对应的按钮和文本框。这种设计使得客户端代码与具体的产品类解耦,使得在需要添加新的产品类型时,只需要修改工厂类而无需修改客户端代码,从而提高了代码的可维护性和可扩展性。原创 2024-03-01 14:27:30 · 946 阅读 · 0 评论 -
策略模式:难道就是这么简单吗
在软件开发中,我们经常会遇到需要根据不同情况采用不同算法或策略的情况。这时,策略模式就能派上用场。策略模式是一种行为型设计模式,它定义了一系列算法,并使得这些算法可以互相替换,让算法的变化独立于使用算法的客户端。原创 2024-03-01 14:24:33 · 532 阅读 · 0 评论