设计模式学习--面向对象的5条设计原则之单一职责原则--SRP

简介: 一、SRP简介(SRP--Single-Responsibility Principle): 就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。   所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。

 

一、SRP简介(SRP--Single-Responsibility Principle):
就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因。
 
所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多。也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了。因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化
“就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责,应该分到不同的人身上去做才对。”
 
二、举例说明:
违反SRP原则代码: 
modem接口明显具有两个职责:连接管理和数据通讯;
interface Modem
{
    public void dial(string pno);
    public void hangup();
    public void send(char c);
    public void recv();
}
 
如果应用程序变化影响连接函数,那么就需要重构:
interface DataChannel
{
    public void send(char c);
    public void recv();
}
interface Connection
{
    public void dial(string pno);
    public void hangup();
}
 
三、SRP优点:
消除耦合,减小因需求变化引起代码僵化性臭味
 
四、使用SRP注意点:
1、一个合理的类,应该仅有一个引起它变化的原因,即单一职责; 
2、在没有变化征兆的情况下应用SRP或其他原则是不明智的; 
3、在需求实际发生变化时就应该应用SRP等原则来重构代码; 
4、使用测试驱动开发会迫使我们在设计出现臭味之前分离不合理代码; 
5、如果测试不能迫使职责分离,僵化性和脆弱性的臭味会变得很强烈,那就应该用Facade或Proxy模式对代码重构;
目录
相关文章
|
1月前
|
设计模式 PHP
PHP中的设计模式:单一职责原则在软件开发中的应用
【10月更文挑战第8天】 在软件开发中,设计模式是解决常见问题的经验总结,而单一职责原则作为面向对象设计的基本原则之一,强调一个类应该只有一个引起变化的原因。本文将探讨单一职责原则在PHP中的应用,通过实际代码示例展示如何运用该原则来提高代码的可维护性和可扩展性。
33 1
|
3月前
|
设计模式 数据库连接 PHP
PHP编程中的面向对象与设计模式
在PHP编程世界中,掌握面向对象编程(OOP)和设计模式是提升代码质量和开发效率的关键。本文将深入浅出地介绍如何在PHP中应用OOP原则和设计模式,以及这些实践如何影响项目架构和维护性。通过实际案例,我们将探索如何利用这些概念来构建更健壮、可扩展的应用程序。
|
3月前
|
设计模式 存储 前端开发
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
|
1月前
|
设计模式 存储 测试技术
PHP中的设计模式:单一职责原则在维护性提升中的应用
【10月更文挑战第3天】 在软件开发中,设计模式是解决常见问题的高效方案。本文聚焦于PHP开发,探讨如何运用单一职责原则优化代码结构,提高系统可维护性。通过分析实际案例,本文展示了单一职责原则在降低代码复杂性、增强代码可读性和促进团队协作方面的显著效果。此外,文章还将讨论在实际项目中实施单一职责原则时可能遇到的挑战及应对策略,旨在为PHP开发者提供实用的指导和启示。
29 2
|
2月前
|
设计模式 Java 关系型数据库
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则
设计模式——设计模式简介和七大原则
|
2月前
|
设计模式 数据管理 测试技术
PHP中的设计模式:单一职责原则在实战项目中的应用
在软件开发中,设计模式是解决问题的最佳实践。本文通过分析单一职责原则(SRP),探讨了如何运用这一原则来提升PHP项目的可维护性和扩展性。我们将从实际案例出发,展示单一职责原则在业务逻辑分离、代码解耦和提高测试效率方面的应用。无论是新手还是经验丰富的开发者,都能从中获益,进而编写出更健壮、更灵活的PHP代码。
39 5
|
2月前
|
设计模式 安全 PHP
PHP中的设计模式:单一职责原则在实战中的应用
在软件开发中,设计模式是解决常见问题的成熟方案。本文将通过分析单一职责原则这一设计原则,探讨如何在PHP应用程序中应用这一原则来提高代码的可维护性、扩展性和灵活性。我们将从实际案例出发,展示单一职责原则的具体应用方法,并解释其对项目开发周期和质量的积极影响。无论你是PHP初学者还是经验丰富的开发者,都能从中获益,提升你的编程实践水平。
30 4
|
2月前
|
设计模式 Java 测试技术
Java设计模式-UML与设计原则(1)
Java设计模式-UML与设计原则(1)
|
2月前
|
设计模式 存储 测试技术
PHP中的设计模式:单一职责原则深度解析
在软件开发的广袤天地中,设计模式如同璀璨星辰,指引着我们穿越复杂系统的迷雾。本文聚焦于PHP环境,深入探讨“单一职责原则”(SRP),这一面向对象设计的基石。不同于常规摘要的简短概述,本文将引导您逐步揭开SRP的神秘面纱,从理论精髓到实践路径,再到其在PHP中的应用实例,为您呈现一场关于代码清晰性、可维护性和扩展性的深度之旅。
|
3月前
|
设计模式 算法 开发者
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决