忘记OOP的速度越快,对您和您的程序越有利。


面向对象的编程是一个非常糟糕的主意,只能在加利福尼亚出现。

-Edsger Weebe Dijkstra

也许这只是我的感觉,但是面向对象的编程似乎是标准的,最常见的软件设计范例。 通常是向学生授课的是他,在在线教程中对他进行了解释,出于某种原因,即使他们不想这样做,也会自发地申请。

我知道她有多吸引人,这个想法似乎浮出水面。 我花了很多年才消灭她的咒语,现在我明白了她有多可怕以及为什么。 由于这一观点,我明确相信人们应该意识到OOP的谬误,并知道可以使用的解决方案。

之前有很多人讨论过OOP问题,在这篇文章的结尾,我将列出我最喜欢的文章和视频。 但是首先,我想分享自己的看法。

数据比代码更重要


. , .

, : -> -> . ! , , : , . . , , .

, , , . , . Customer? class Customer. ? class RenderingContext.

«» , , , . . .


, . , . FizzBuzz Enterprise Edition — , .

, — . . - , .


, . .

class Customer class Order, . class OrderManager Order, Customer. , , .

, , , .

- , - , , , . Context , - , , - Enterprise.


, . : class Player hits() class Monster, ? hp Monster attackPower Player; xp Player Monster Monster. Player.hits(Monster m) Monster.isHitBy(Player p)? class Weapon? isHitBy Player currentWeapon()?

. , , — . , , Enterprise.


:

— , , . .

, , ( ). : , , , , , . : , .

— , ADT, . , , , .

, , , API .. «»/«»/«». , (Java/Scala) / . , , , , , .

-


: , — (). .

, , , , , , . , .

- . , , , . .


, , . .

?


, « », , .

. , , , . , : ( , ) ..

, . , DataStore API, . ADT/PoD, ID (, uuid ). : Vec HashMap Index ID, «», , . , LRU .

DataStore . . : stdin, , trust manager, .. «» , .. «» DataStore.

: DataStore , .

: , , , , , Customer . : CustomerDataStore, «-» .


, — . , / . , :

Source: https://habr.com/ru/post/zh-CN451982/


All Articles