博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六大设计原则详解(1)-单一职责原则
阅读量:6671 次
发布时间:2019-06-25

本文共 1247 字,大约阅读时间需要 4 分钟。

简介:

单一职责原则(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="天津市";    }


类:

类的单一职责原则和接口、方法的单一职责一样的,但是我们会发现先在项目开发中很多类都不太符合,那是因为类的单一职责受很多因素的影响,比如说项目的周期、技术人员的水平等等。

所以总结起来,在开发中,定义的接口和方法一定要做到单一职责,类要视情况而定。

我的公众号

转载地址:http://qtlxo.baihongyu.com/

你可能感兴趣的文章
【274】Python 相关问题
查看>>
Linux-进程间的通信-信号集函数【转】
查看>>
js2word/html2word的简单实现
查看>>
jQuery.extend和jQuery.fn.extend的区别?
查看>>
职业发展
查看>>
Linux下环境变量设置
查看>>
phonegap 安装和使用eclipse
查看>>
ASP.NET MVC使用动态产生meta
查看>>
WIN7无法访问共享打印机及文件的解决办法
查看>>
C语言基础(9)-字符串格式化输入和输出
查看>>
【转】使用import scope解决maven继承(单)问题
查看>>
你 我 我们 技术 让世界变得更好一些
查看>>
WCF安全:通过 扩展实现用户名密码认证
查看>>
Spring Boot中增强对MongoDB的配置(连接池等)
查看>>
IDEA中maven工程指定JDK版本
查看>>
基于 HTML5 的 WebGL 3D 智能楼宇监控系统
查看>>
一次阿里的面试
查看>>
数据库事务隔离级别
查看>>
JSONP跨域以及之前的历史
查看>>
FLEX库在苹果废弃ASL之后的解决方案
查看>>