接口和抽象类的关键词_“抽象”是一个肮脏的词。

接口和抽象类的关键词

我们程序员拥有许多可用的工具和可以使用的崇高观念-但这并不意味着我们应该这样做。

我经常被告知,抽象是“编程的核心概念”。 的确,没有它,我们将用字节码编写软件,抓紧脑袋,寻找新的职业。 抽象给了我们C。它给了我们各种表达自己的语言和概念,正如每个程序员的权利一样。 但是,一些程序员在屋顶上大喊“抽象”,并兜售它,以解决所有编程难题,而我对此感到不安。

我发现的问题不是抽象本身,而是有时用这个词来表示:间接,隐藏行为和其他复杂性-尽管它们会告诉您它使一切变得如此简单。 谁能责怪他们? 我们有很多流行语来帮助萌芽的抽象器,例如:接口,继承和封装。 不幸的是,仅仅因为一个孩子可以拿到剪刀,并不意味着他们应该一直使用它们。

例如,当我刚接触编程时,我全神贯注于可以“交换”的接口,并使用数十个具有隐藏的,易变的状态的类来建模问题。

介面

如果您认为自己编写的软件可以生存数十年,保持不变并且可以正常运行数十年,那么您可能错了,对不起。 如果您确实从事该项目,那么您可能会使一些可怜的程序员的生活变成现实,因为他将在2030年启动Windows XP或Internet Explorer 9。

人们之所以喜欢使用界面,是因为:如果怎么办?

“如果将来我们想换出渲染库怎么办? 这很容易,因为它隐藏在此方便的界面后面。”

如果您要实现功能并做出此类决策,那么您就没有在实现功能-您将自己包裹在舒适的猜测中。 我一次也没有看到这个决定有回报。 如果您确实要改变技术,那么您的界面总是不会很正确,并且需要进行调整。 如果您必须调整接口及其调用者,那么您可能也不必打扰。 所以不要打扰。

概念课

我开始的另一种诱惑是建立带有内部,隐藏状态和行为的类塔–将我的问题映射到一些更具体的概念上,而不是直接处理数据的复杂性。

a绕着封装为王的误解是一种恶习。 封装充其量是宫廷的笑话。 随着软件变得越来越复杂,越来越难以推理应用程序中这些类型的对象之间的交互,从而使得调试变得更加困难。 未来的程序员(包括您在内的三个月之内)将很难为您的软件的实际功能和操作方式做出推理。 它告诉我,随着软件的增长,抽象者常常不愿进行小改动或快速修复。

我并不是说“不要使用OOP引入的工具”,我知道一些优秀的程序员愿意并且不时地这样做。 但是,我建议您完全实现所需的内容,仅此而已。 软件就是数据 :输入,处理然后再输出,而我最好的代码一直是做最简单的事情来完成工作的代码。 我最近的东西也大部分都可以正常工作,但是在另一时间更多。 现在,您可能会喜欢Mike Acton的有关C ++中面向数据的设计的演讲

翻译自: https://hackernoon.com/abstract-programmers-acada09df860

接口和抽象类的关键词

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值