2019 年 3 月

第 34 卷,第 3 期

此文章由机器翻译

[编者寄语]

裸理想

通过Michael Desmond |2019 年 3 月

Michael Desmond面向对象的编程 (OOP) 具有所代表的含义为启发性目标回到 Alan Kay 和编程语言在 20 世纪 80 年代中他 Smalltalk 的开发人员。很难再提出置疑功能模块化、 可重用代码,加快开发速度,简化维护工作,并提高效率的面向对象的方法的优点。通过几十年来,我们已了解最广泛采用的许多面向对象使用编程语言和框架,通过 java 到 c + + 和C#。

但正如 Ted Neward 指出在其孜孜不倦的程序员专栏中一年中的开始时 (msdn.com/magazine/mt848703),OOP ultimate 承诺保持未完成的范围内。在该专栏中,他引入了裸对象 (nakedobjects.org),由专用于行为上完整对象的概念的 Richard Pawson 开发体系结构模式。与大多数主流 OOP 实现,裸对象封装所有的业务逻辑作为域实体的方法。开发人员不需要定义视图或控制器,并从收集通过反射,从在运行时对象的元数据自动生成用户界面。

"反射、 梦想或 imagines 生成系统,这就是我认为裸对象是作为模型检查因此有益的原因,他们发现后,我认为每个高级开发人员,"Neward 说。"是不是大多数开发人员认识到,或我认为哪些有什么坏处是,许多人并不知道它的一部分存在更为可行。"

Naked 对象作为 Pawson,他是能够浏览与 Alan Kay 中早期 20 世纪 90 年代的会话后的深层对象方向的博士论文获得其启动。Pawson 看到的那样,尽管明显的好处,几个商业系统正在开发在 OOP 中。和,他说,"的执行方式的那些未获取类型的 OOP 承诺的显著优势。我曾热衷于了解其中的原因。"

他结论:从一种基于行为上完整的对象的模式的理论提升已通过上面的代码和以下域模型层创建实际的应用程序所需的所有工作的偏移量。Pawson"行为上完整的域对象的好处丢失了增加的复杂性中,"简单地说,说。

Naked 对象地址这些断开的连接,从而消除了创建和维护 UI 层的工作时说 Pawson。"您获得的一个 UI,甚至在非常复杂域模型是在其操作中,完全一致的好处"。

您不会找到大量裸对象部署,但它们确实存在。社交保护爱尔兰部门已自 2004 年以来在裸对象建立其企业系统。Pawson 显示院系已通过三种全然不同体系结构,而无需任何更改移动到基础域代码 — Windows Presentation Foundation 胖客户端模型中,在 ASP 上运行的瘦客户端模型。MVC 中,并且当前编写的单页面应用程序在 Angular 和 RESTful API 通过与服务器进行通信。

"考虑到其业务模型的复杂性 — 4,000 plus 域类 ! — 这就是特别的成就,"他说。

是裸对象,可能需要点击此处查看下一个项目?很可能没有。但它可以作为 Pawson 注释来提供面向开发人员无论 engagement 课程。

"裸对象使这成为更易于遵循多种声音软件设计的原则"说 Pawson。"域驱动设计,关注点分离,模块化和最重要的是,多态性。"

这些课程是确保 Neward 的正在进行的裸对象序列中存在。请务必查看他最新在本月的问题。


Michael Desmond是的主编MSDN 杂志 》。