加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

类文件的单一接口原则

发布时间:2020-05-23 05:43:00 所属栏目:程序设计 来源:互联网
导读:面向对象有一个重要的原则:单一职责原则。即一个类应该尽量只承担一种职责。 前几天做了个小程序,把多个类定义在了一个文件中。类和类之间有依赖的关系,还共用几个变量。同时,三个类都有被外界调用的可能。昨晚想来想去觉得不妥。最终得一结论:类文件应

面向对象有一个重要的原则:单一职责原则。即一个类应该尽量只承担一种职责。

前几天做了个小程序,把多个类定义在了一个文件中。类和类之间有依赖的关系,还共用几个变量。同时,三个类都有被外界调用的可能。昨晚想来想去觉得不妥。最终得一结论:类文件应该符合单一接口(类)。

对此做如下说明:

一.所谓单一接口是指类的文件对外只有一个发言人。即只有一个类是被外界调用的,在外界看来这个文件中似乎只有这么一个类。

二.该对外接口同样得符合单一职责原则。不能是个万能的上帝类。

三.文件内部其他类或结构只能被封装在内部,供内部使用。如果确实想和其他文件共有类和结构,请把它们解耦出来,形成单个文件。

这样才能真正的把文件与文件之间解耦,更清晰地看出对象的依赖关系。

举个例子,一个文件F中含有A和B两个对外接口。我们不知道A和B之间有没有关系,因为一个文件对我们来说就是一个封装好的组件。此时如果我要用到A,那我们不得不把庞大的F加载进来,B很可能就是一个冗余的接口。要修改B,那我们还必须对整个F文件进行修改。A和B”耦合“了(不管他们是否真的耦合,至少外界看来是这样)。

2010.4.26补充:

以上所说如果A和B放在同一文件里说明他们之间”耦合“了。这里所说的耦合是从F文件使用者的角度来说。因为使用者并不关心内部结构,对他来说这个封装好的文件就是一个整体。他们内部可能是松耦合的A和B一点关系也没有。可使用者不知道啊,这样F文件的原创者修改了F文件中的B,那他就不得不对没一个使用F文件的人发布新的文件,让他们重新编译F文件。

再举一例说明:

本来甲建了一文件F,包含A和B。乙拿过来用了(甲也不知道乙到底是用了A还是B,只知道用了F文件)。后来甲修改了B,B又引用到了其他文件,把F发给了乙。那么乙不得不也把这些引用到的文件全部加载进来以保证编译通过,这都是不必要编译麻烦。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读