加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮安站长网 (https://www.0517zz.cn/)- 运营、云管理、经验、智能边缘、云硬盘!
当前位置: 首页 > 业界 > 正文

掌握依赖注入5大原则,无需额外编代码

发布时间:2021-03-05 17:27:34 所属栏目:业界 来源:互联网
导读:单。类的构造函数不应该做任何工作也就是说,除了检查null、创建可创建类和存储依赖项供以后使用之外,它们不应该做任何事情。 它们不应该包含任何编码逻辑。一个类构造函数中没有检查null的if子句,那么这个类就会被分成两个类。(有不涉及if语句检查nil-val

单。类的构造函数不应该做任何工作——也就是说,除了检查null、创建可创建类和存储依赖项供以后使用之外,它们不应该做任何事情。

它们不应该包含任何编码逻辑。一个类构造函数中没有检查null的if子句,那么这个类就会被分成两个类。(有不涉及if语句检查nil-value参数的方法。)

复杂的构造函数表明类做的工作太多。保持构造函数简短、简单且无逻辑。

二、不要假设接口是抽象的

接口很不错,我一直对它赞不绝口。然而,重要的是要认识到并非每个接口都是抽象的。

例如,如果接口是公共部分类的精确表示,实际上并没有抽象任何东西,对吗? (这些接口被称为头接口,类似于c++的头文件)。从类中提取的接口可以很容易地单独与该类紧密耦合,使得接口作为抽象类毫无用处。

最后,抽象类可能是有漏洞的——也就是说,它们可以揭示关于实现类的特定细节。有漏洞的抽象类通常也与特定的实现类绑定在一起。

三、不要对实现类做任何假设

当然,如果没有实现类,接口是毫无用处的。但是,作为开发人员不应对实现类做任何假设。

只该根据接口生成的契约进行编码。你可能已经编写了实现,但不应该在考虑实现的情况下针对接口编写代码。换句话说,针对接口的代码就好像一个全新的、更好的接口实现。

一个设计良好的接口会告诉你需要做什么以及如何使用它。该接口的实现对你使用该接口是无关紧要的。

四、针对抽象类而非实现类的代码

该短语出自“四人帮”之一的埃里希·伽玛(Erich Gamma)(《设计模式》一书的作者),是一个重要的想法。如果只能教给新的开发者一件事,那就是这句格言。

抽象类是灵活的——通常是接口但不总是(见下文)。

接口(或抽象类)可以通过多种方式实现。可以在实现完成前对接口进行编码。如果对实现进行编码,将创建一个紧密耦合且不灵活的系统。不要把自己限定在单一的实现中。相反,使用抽象,编出可扩展、可重用及灵活的代码。

(编辑:淮安站长网)

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

    推荐文章
      热点阅读