Naked Object (裸件)


在开发具体应用时,通常我们不仅要关心业务逻辑,还要在UI和数据持久化上花费很多功夫。而且业务逻辑变化后,UI和数据持久化也常常需要修改。如果我们只需要设计并实现我们的业务类,而将UI和数据持久化完全剥离出去岂不是开发中的大快事?Naked object(裸件)正是这样的思想。使用Naked Objects Framework可以帮我们省去开发UI和数据持久层的工作——我们只需要开发业务类,NOF会为我们生成UI和数据持久层!如果真的有这样一个成熟的NOF的话,那程序员需要做的事情就更少了!

Naked object也并不是才出来的新鲜事务,现在已经有些年头了,它是由ROR和Naked Object组织提出来的。他们提倡域驱动开发(domain driven development framework ),简称DDD,是一种最新的OO设计概念。通常我们开发时会有Entity class以及Service class(business logical),而在这种DDD中,开发的是复杂的域对象——把Entity class和Service糅合在一起——这也正是一个我们在OO中常常提到的具有完整行为的对象。在Java world,Naked object已经被讨论了很多了,而在.Net world似乎还没有什么人去深入研究它。Naked object组织已经开发了一个Naked Objects Framework,早先是使用Java开发的,现在已经有了.Net版,它是一个open source的framework,我们可以下载其source code和demo。其UI就想我们使用的windows桌面,图标就代表业务对象——将业务对象直接暴露给使用者,点击图标就能对此业务对象进行业务操作,而没有什么主菜单之类的东西。这就象我们设计一个类时,考虑的是使用它的客户——客户关心的就是业务。这个framework是由Robert Matthews开发的,他和Richard Pawson(NOF的设计者)还一起写了本书《Naked Objects》,并且在TheServerSide发表了系列文章。虽然NOF还不很成熟,但是值得我们去关注其发展动向,借鉴其思想。


链接:

Rolling with Ruby on Rails

Ruby on Rails 实践

在Ruby on Rails/Naked Objects精神指引下的域驱动开发框架

脱掉

Naked Objects书评

 

Naked Objects电子书

posted @ 2005-09-08 14:07  风满袖  阅读(2618)  评论(7编辑  收藏  举报