23种设计模式
一、创建型模式(Creational Patterns)聚焦对象创建过程,简化复杂对象的实例化。
[*] 单例模式(Singleton)
[*]界说:确保一个类仅有一个实例,并提供全局访问点。
[*]示例:日志管理器、配置中央。
[*] 工厂模式(Factory Method)
[*]界说:界说创建对象的接口,由子类决定实例化哪个类。
[*]示例:根据用户范例创建不同的用户对象。
[*] 抽象工厂模式(Abstract Factory)
[*]界说:提供一个创建一系列相干或依赖对象的接口,无需指定具体类。
[*]示例:跨平台 UI 组件库(如鸿蒙、Android、iOS 的按钮工厂)。
[*] 制作者模式(Builder)
[*]界说:分步构建复杂对象,分离构造与表示。
[*]示例:配置一个包含多个参数的网络哀求对象。
[*] 原型模式(Prototype)
[*]界说:通过克隆现有对象创建新对象,克制重复初始化。
[*]示例:游戏中快速复制角色对象。
二、结构型模式(Structural Patterns)
关注类和对象的组合,优化系统结构。
[*] 适配器模式(Adapter)
[*]界说:将一个类的接口转换为另一个接口,使不兼容的类可以协同工作。
[*]示例:将旧版本的 API 适配到新系统中。
[*] 桥接模式(Bridge)
[*]界说:分离抽象与实现,使两者可以独立厘革。
[*]示例:将 UI 组件的抽象类与具体渲染实现分离。
[*] 装饰器模式(Decorator)
[*]界说:动态添加功能到对象,克制继承的范围性。
[*]示例:给图片加载组件添加缓存、压缩等功能。
[*] 组合模式(Composite)
[*]界说:将对象组合成树形结构,同一处理单个对象和组合对象。
[*]示例:文件系统中的目次和文件管理。
[*] 外观模式(Facade)
[*]界说:为子系统提供同一接口,简化复杂子系统的使用。
[*]示例:支付系统的同一接口封装(支付宝、微信支付等)。
[*] 享元模式(Flyweight)
[*]界说:共享细粒度对象,减少内存斲丧。
[*]示例:游戏中大量重复的子弹、粒子效果对象。
[*] 署理模式(Proxy)
[*]界说:为其他对象提供署理以控制访问。
[*]示例:网络哀求的署理缓存、权限控制。
三、行为型模式(Behavioral Patterns)
处理对象间的交互和职责分配。
[*] 策略模式(Strategy)
[*]界说:界说算法族,使它们可互换,策略的厘革独立于使用它的客户。
[*]示例:电商平台的促销策略(满减、折扣、赠品)。
[*] 责任链模式(Chain of Responsibility)
[*]界说:将哀求通报给处理者链,直到有一个处理者响应。
[*]示例:请假审批流程(员工→主管→司理)。
[*] 下令模式(Command)
[*]界说:将哀求封装为对象,支持撤销、重做等操纵。
[*]示例:文本编辑器的撤销 / 重做功能。
[*] 迭代器模式(Iterator)
[*]界说:提供遍历集合元素的同一接口,隐藏集合内部结构。
[*]示例:遍历列表、树结构等数据集合。
[*] 中介者模式(Mediator)
[*]界说:用中介对象封装对象间的交互,减少对象间的直接依赖。
[*]示例:聊天系统中用户间的消息通报。
[*] 备忘录模式(Memento)
[*]界说:捕捉对象状态并保存,以便恢复。
[*]示例:游戏进度保存与恢复。
[*] 观察者模式(Observer)
[*]界说:对象间的一对多依赖,当对象状态厘革时关照所有依赖者。
[*]示例:股票价格及时更新关照。
[*] 状态模式(State)
[*]界说:对象行为随状态改变而厘革,状态作为独立类。
[*]示例:订单状态机(待支付→已支付→已发货)。
[*] 模板方法模式(Template Method)
[*]界说:界说算法骨架,子类实现具体步骤。
[*]示例:HTTP 哀求的模板(预处理→发送→后处理)。
[*] 访问者模式(Visitor)
[*]界说:将数据结构与操纵分离,允许在不修改数据结构的条件下添加新操纵。
[*]示例:文档解析器支持多种格式(HTML、Markdown)的访问。
四、总结
[*]创建型:解决对象创建的复杂性,如单例、工厂。
[*]结构型:优化类 / 对象的组合,如适配器、装饰器。
[*]行为型:规范对象间的交互逻辑,如策略、观察者。
设计模式的选择需结合具体场景,其核心目标是提高代码的可维护性、可扩展性和复用性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]