抽象与继承编程指南

     

抽象两种方法:上下文与类型

96 1 3K

“抽象”的中文意思是“抽出象形”。奥妙就在于实现手段有很多,也是创新所在,这里比较三种手段: 首先是中文字面意思上的“抽象.

继承和OOP已经死亡了吗?

755 7K

这是一个关于如何被迫放弃继承和面向对象编程的故事,作者仍然怀念它很长一段时间。为什么五年后的今天,作者还是认为继承在大多数情况下是一个较差的选择。 <.

Golang 不是 Java,类型嵌入不是继承。

427

在 Golang 中,可以使用结构将一个类型嵌入到另一个类型中。这看起来像一个普通的字段声明,但没有名称。这是将一个结构嵌入另一个结构: .

为什么组合优于继承?

1558 1

过度(滥用)继承一直是OO的最大问题之一。 组合可以在OO或FP中实现,对FP的了解(哪怕是一点点)可以积极地影响你如何写OO代码。 .

如何使用OO和函数式两个方法实现重构? - DZone

1026 2 2K

Java 中的重构有很多方面,但其中有两个基础: .

DRY原则:识别模式并抽象概括 - javierdearcos

1072 1

DRY 来自“Don't Repeat Yourself”的首字母缩写词,是最普遍的开发原则之一。它是由Andy Hunt和Dave Thomas在他们的书.

软件工程中的海仑定律 - hyrumslaw

2180

海仑定律(Hyrum's Law)是软件工程中一种观察经验: .

面向对象编程核心是多态!不是抽象哦 | by Sohee Kim

871 1

运行良好的软件和运行正常的软件之间是有区别的。仅考虑其行为,构建有效的软件是一项工作完成了一半。软件工程师应该通过考虑其 结构 .

幽默:简单几点说明日常编程中的软件设计或程序设计

879 3

软件设计或程序设计不只是算法设计,还有模式结构的设计,体现在:  - 将模块分组到架构层是设计。  - 将类分组为模块是设计。 .

LSP-Liskov替代原理 - deepdive

1346

Liskov替换原则是SOLID的一部分,该缩写缩写总共捆绑了5条设计原则。 它通常与干净的代码相关联。 但是到底是什么,对您来说重要吗,您甚至.

JPA/Hibernate技巧:获取子类定义的关联的最佳方法 - thorben

1871 7K
EntityGraphs和JOIN FETCH子句提供了一种简单有效的方法来获取实体并初始化其关联。但是,如果尝试将其与 .

Martin Fowler:继承是被误用了

1257 4

很多权威人士,包括OO粉丝,都不喜欢“继承”,但是它让我将一个通用行为调整到特定行为时更有用和简单,只是它被误用了,像很多技术一样,需要学会如何好好地用它。.

Java中的重载和覆盖的细微差别 - rajivprab

1 1058 13K

我已经用Java编程超过五年了,并且认为我知道重载和覆盖是如何工作的。只有一次我开始思考并写下以下的角落案例,我才意识到我几乎不知道它。为了游戏化这些细微差.

扩展对象(Extension objects)

1026 25K
目的 预计将来需要扩展对象的接口。其他接口由扩展对象定义。 .

Java中基于泛型的交叉类型 - {4Comprehension}

1742 1 2K

简单地说,交集类型是通过组合至少两种不同类型而创建的匿名类型的形式。 想象一下,我们需要模拟两种类型的动物: 那些可以飞的 <.

抽象文档模式(Abstract Document)

1716 44K
目的 实现无类型语言的灵活性并保持类型安全 .

类表继承模式(Class Table Inheritance Pattern)

3167 26K
此模式属于对象关系结构模式目录,此目录属于 .

什么是抽象文档模式?

1990 2 3K
文档是包含许多属性的对象,而属性可以是数字或字符串之类的值,也可以是其他文档的列表。使用键Key引用每个属性。当遍历文档树时,用户指定用于创建下一级别的实现.

对抽象方法仇恨的自白 - 250bpm

727 3K

我之前写过关于 抽象成本的文章 。一旦.

用汽车比喻理解OOP - Jonathan Kuhl

2657 4 11K

站在任何街角,观看交通一段时间,来来往往都是汽车。它们具有相同的基本结构:四个轮子,一个发动机,一个方向盘,用汽油或柴油运行。然而,它们在颜色,马力,形状,.

这不是你想要的DRY

949

“ 不要重复自己 DRY”,每个开发者都在他职业生涯的早期就学会了这个口头禅。 对这个原则的共同理解是你不应该复制你的代码。就那么简单。 不要复.

错误的抽象

1207

复制比错误的抽象便宜得多(代价小成本低),宁可重复而不选择错误的抽象。 让人们意识到“错误的抽象”这个问题是很难: 程序员A看.

抽象的力量

923 2

如果有人问我“在所有软件开发中最重要的概念是什么?” 我会用一个词来回答它:“抽象”。 抽象就是将一个想法简化为绝.

用Lambda实现模板模式

1103 4K

Java 8 Lambda表达式的简洁性为经典的GoF设计模式提供了新的视角。通过利用函数式编程,我们可以通过更少的耦合和仪式获得相同的好处 - 模板方法就.

间接不是抽象

725

这篇文章认为接口interface代表的间接和abstract代表的抽象并不是一回事,间接是为了分离,松耦合,而抽象是为了将细节剥离。这是软件设计中两个不同.

继承可能是有益的,Class不能是final!

1534 1 7K

任何优雅对象的类必须是抽象的或final的,我相信,这条规则背后的意图是消除继承。继承的缺点和子类型的缺点是相当清楚的,所以我不会在这里强调,然而,在我的实践中,我.

错误的抽象

1191 2

重复是比错误的抽象更便宜。看到重复事物,我们总是试图从重复中抽象出共同点,这其实属于过度设计,反而给代码带来更高的维护拓展成本。 .

再见面向对象编程?

1 2899 3 3K

一位有着10年面向对象语言的程序员对面向对象两大支柱继承和封装提出了自己的疑问,并由此认为可以向面向对象说再见了。 原文:.

到底什么是抽象?

1 4079 1

到底什么是抽象? 我们经常说和听到“抽象”这个词,但是大家可能并不特别理解这个词到底是什么意思,至少大家对这同一个词的理解感觉起来有很大的不同,我想表述一下我.