简介:
单一职责原则(SRP:Single responsibility principle),它规定一个类应该只有一个发生变化的原因。所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。
单一职责原则的好处:
-
类的复杂性大大降低,每个类都有清楚的定义。
-
提高可读性。
-
维护性高。
-
变更时风险率降低。
转化到Android开发中也就是我们编写的接口、类、方法要使用单一职责原则,下面通过这三个方面来详细了解一下单一职责原则。
Interface
public interface Weather { //加载某日某城市的天气 void LoadWeather(String date,String city); //获取天气成功 void GetWeatherSuccess(); //获取天气失败 void GetWeatherError(Throwable e); }
从接口本身来看写的没问题,但是从单一职责原则的角度上看是有问题的,接口里展示了两个职责,一个是加载数据,一个是提示信息。再换个角度想,相互不影响的方法可以拆分成多个接口,那我们来看GetWeatehrSuccess()和GetWeatherError(Throwable e),如果其中一方发生变化了,那么另一方肯定发生变化了 ;那么LoadWeather(String date,String city)和其他两个方法比较会发现相互不影响。所以LoadWeather(String date,String city)可以单独拆分出来。
所以接口要符合单一职责。
方法
比如一个修改用户名和密码的需求,我们把它写在一个方法里。
private void ChangeUser(String username,String address) { username="abc"; address="天津市"; }
上述代码的方法职责不明确,既有修改用户名又修改地址,不符合单一职责原则。每个方法必须的职责必须清晰明确,不仅开发简单,而且维护也很容易。
正确的修改如下:
private void ChangeUserName(String username) { username="abc"; } private void ChangeAddress(String address) { address="天津市"; }
类
类的单一职责原则和接口、方法的单一职责一样的,但是我们会发现先在项目开发中很多类都不太符合,那是因为类的单一职责受很多因素的影响,比如说项目的周期、技术人员的水平等等。
所以总结起来,在开发中,定义的接口和方法一定要做到单一职责,类要视情况而定。
相关推荐
详细介绍了设计模式六大原则,配有示例代码和图片,有开闭原则,单一职责原则,里氏替换原则,依赖倒置原则,接口隔离原则,迪米特法则等等。
1. 单一职责原则(Single Responsibility Principle, SRP):一个类应该只有一个引起它变化的原因。这意味着一个类应该只有一个职责或功能。 2. 里氏替换原则(Liskov Substitution Principle, LSP):子类应当可以...
### 设计模式之六大原则详解 #### 一、单一职责原则 (SRP) **定义**: 单一职责原则(SRP, Single Responsibility Principle)指出,一个类应该仅有一个引起它变化的原因,换句话说,一个类只应负责一项职责。 **...
设计模式的六大原则 1. 开闭原则(Open Closed Principle):一个软件实体,如类、模块和函数应该对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的...
单一职责原则 (Single Responsibility Principle)** 一个类应该只负责一项职责。如果一个类承担了多项职责,则这些职责应该被分离到不同的类中。 **2. 里氏替换原则 (Liskov Substitution Principle)** 子类型必须...
- **单一职责原则**:每个类应当只负责一项功能。这有助于降低类的复杂度,便于理解和维护。 - **开放-封闭原则**:软件实体应该是对扩展开放的,但对修改封闭的。通过使用抽象类和接口,可以在不修改现有代码的情况...
**单一职责原则【Single Responsibility Principle】** 一个类应该只有一个引起它变化的原因。即一个类只负责一项职责。 ##### 2. **里氏替换原则【Liskov Substitution Principle】** 子类型必须能够替换掉它们...
- **单一职责原则**:一个类应该只有一个引起它变化的原因。 - **里氏替换原则**:子类型必须能够替换掉它们的基类型。 - **依赖倒置原则**:高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于...
【部分内容】:《软件架构设计》的学习报告深入探讨了软件架构的定义和重要性,以及架构设计过程中的六大基本原则和步骤。 **知识点详解:** 1. **软件架构定义**:软件架构是指软件系统的组件构成及其相互关系,...
### 面向对象分析设计的六大原则详解 面向对象设计是软件开发中不可或缺的一部分,其核心在于通过抽象、封装、继承与多态等机制来提高软件系统的复用性、可维护性和扩展性。本文将深入探讨面向对象设计中的六个重要...
此外,对软件设计原则和模式的理解,如单一职责原则、开闭原则、工厂模式、观察者模式等,也是考试的重点。 二、数据结构与算法 数据结构是支撑软件设计的基础,考生应熟练掌握数组、链表、栈、队列、树、图等各种...
设计模式遵循六大原则: 1. 开闭原则:软件实体应对扩展开放,对修改关闭,即在不修改原有代码的基础上,通过扩展实现新的功能。 2. 里氏替换原则:子类必须能够替换其基类,保持系统的行为不变。 3. 依赖倒置原则:...
#### 四、设计模式的六大原则 1. **开放封闭原则**:软件实体(类、模块、函数等)应该是可以扩展的,但是不可以修改的。这意味着我们应该通过增加新代码来满足新需求,而不是更改现有的代码。 2. **里氏替换原则**...
4. **单一职责原则(SRP)** - **定义**:一个类应该只有一个引起它变化的原因。简单来说,就是让每个类承担单一的职责。 - **好处**:使类更加专注,易于理解和维护,降低复杂度。 5. **接口隔离原则(ISP)** ...