23种设计模式中符合和违法单一职责原则的设计模式分别是哪些

时间: 2024-04-23 16:25:37 浏览: 12
单一职责原则是指一个类应该只有一个引起它变化的原因。在23种设计模式中,符合单一职责原则的模式有以下几种: 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 4. 单例模式 5. 原型模式 6. 适配器模式 7. 装饰器模式 8. 代理模式 9. 桥接模式 10. 组合模式 11. 享元模式 12. 策略模式 13. 模板方法模式 14. 观察者模式 15. 迭代器模式 16. 职责链模式 17. 命令模式 18. 备忘录模式 19. 状态模式 20. 访问者模式 21. 解释器模式 而违反单一职责原则的模式包括以下几种: 1. 建造者模式 2. 工厂模式 3. 中介者模式
相关问题

23种设计模式中符合单一职责原则的设计模式有哪些

在23种设计模式中,符合单一职责原则的设计模式有以下几种: 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 4. 单例模式 5. 原型模式 6. 适配器模式 7. 装饰器模式 8. 代理模式 9. 桥接模式 10. 组合模式 11. 享元模式 12. 策略模式 13. 模板方法模式 14. 观察者模式 15. 迭代器模式 16. 职责链模式 17. 命令模式 18. 备忘录模式 19. 状态模式 20. 访问者模式 21. 解释器模式 在这些设计模式中,每个类或对象都只负责一个单一的功能,不会涉及其他不相关的功能,这样可以提高代码的可维护性和扩展性。

23种设计模式中违反单一职责原则的设计模式有哪些

在23种设计模式中,违反单一职责原则的模式包括以下几种: 1. 建造者模式:建造者模式将一个复杂对象的构建过程分解成多个步骤,每个步骤由一个建造者负责。这种设计模式中,一个建造者负责多个职责,违反了单一职责原则。 2. 工厂模式:工厂模式将对象的创建过程抽象出来,由一个工厂类负责创建对象。这种设计模式中,一个工厂类负责多个产品的创建,违反了单一职责原则。 3. 中介者模式:中介者模式定义一个中介对象来封装一系列对象之间的交互,使得各对象之间不需要显式地相互引用。这种设计模式中,一个中介者对象负责多个对象之间的交互,违反了单一职责原则。 这些设计模式虽然违反了单一职责原则,但是它们都为代码提供了更好的可扩展性和可维护性,具体情况需要根据实际情况进行权衡和选择。

相关推荐

最新推荐

recommend-type

23种经典设计模式-C#版本

23种经典设计模式-C#版本,完整版,每一种设计模式都结合C#代码讲解。
recommend-type

设计模式(23种)与设计原则(6种)

详细描述全部(23种)设计模式与设计原则(6种)。 (一)设计原则包括: 1、开闭原则 2、里氏代换原则 3、依赖转换原则 4、接口隔离原则 5、合成/聚合复用原则 6、最少知识原则 (二)设计模式 1)工厂模式...
recommend-type

2020版23种Java设计模式-图解-附代码.pdf

2020最新详解学习资源,。JAVA版本,史上最优秀的23种设计模式教程,图解生动,配完整用例代码测试。
recommend-type

软件设计模式与重构大作业-心算大师游戏

西南科技大学软件设计模式与重构大作业-心算大师游戏(高分作业)
recommend-type

《Java设计模式》课程设计报告.docx

用myeclipse开发的java设计模式课程设计,课题内容为西瓜工厂,包含四个设计模式,单例模式、代理模式、建造者模式和抽象工厂模式,有较好的图形界面,文档内附有完整代码,适用于新手学习。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

list根据id查询pid 然后依次获取到所有的子节点数据

可以使用递归的方式来实现根据id查询pid并获取所有子节点数据。具体实现可以参考以下代码: ``` def get_children_nodes(nodes, parent_id): children = [] for node in nodes: if node['pid'] == parent_id: node['children'] = get_children_nodes(nodes, node['id']) children.append(node) return children # 测试数
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。