黑马程序员_单一职责原则

来源:互联网 发布:免费字体软件下载 编辑:程序博客网 时间:2024/06/08 08:52

------- android培训java培训、期待与您交流! ----------

单一职责原则

单一职责原则的定义:应该有且仅有一个原因引起类的变更。

例:在线视频通话

面向接口编程,给这个过程定义一个接口。

public interface Video{    //连接对方    public void connect(String ID);    //视频    public void communication(Object obj);    //挂断    public void hangup();}


    单一职责最难划分的就是职责了,那上面这个接口是单一职责的吗?

    显然上面这个接口拥有两个职责,一个是完成通信协议的管理连接和挂断 ),二是视频数据的传输。这里就有两个原因引起类的变化。并且两个职责并不相互影响,可以考虑拆分成两个独立接口。

public interface ConnectionManager{public void connect(String ID);public void hangup();}public interface DataTransfer{public void communication(Object obj);}

DataTransfer接口是依赖ConnectionManager的。(只有先连接好了,才能传输数据)

单一职责原则的优点:

<1>类的复杂性降低,实现什么职责都有清晰明确的定义。

<2>可读性提高。

<3>可维护性提高。

<4>变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他的接口没有影响,这对系统的扩展性,维护性都有非常大的帮助。

    单一职责原则提出了一个编写程序的参考,用“职责”来衡量接口或类设计得是否优良,但职责是不可度量的,因项目而已,因环境而异。所以还得看具体需求。

    单一职责原则适用于接口,类,同时也适用于方法。一个方法尽可能只做一件事情。但现实总与理论有一定的距离。现实项目中类的单一职责受到非常多因素的制约,所以很难见到。

    但接口和方法一般是可以做到单一职责原则的,类就随缘吧。

------- android培训java培训、期待与您交流! ----------

原创粉丝点击