裸露的物体。好或坏 [已关闭]
我最近接触到裸体物体。它看起来像一个相当不错的框架。然而,我没有看到它像春天那样被广泛使用。那么,为什么这个框架没有得到任何主流应用程序的信任。正如你所看到的,它的缺点是什么?
我最近接触到裸体物体。它看起来像一个相当不错的框架。然而,我没有看到它像春天那样被广泛使用。那么,为什么这个框架没有得到任何主流应用程序的信任。正如你所看到的,它的缺点是什么?
根据我使用NOF 3.0.3的经验...
好处:
坏处:
有点丑陋:
如果一个对象是从非ui线程修改的,比如说一个b.g.worker,这样的对象不会
在屏幕上更新它的视图。这将使用例失效,例如在 DnD 自动生成的 UI 上实时表示邮件队列。(再次)
维科
我已经研究裸体方法一年多了,我甚至还没有开始触及它为系统架构提供的可能性的表面。但是,为了正确使用它,它需要您创建范式转换并寻求完整的OO解决方案,并从诉诸功能鸭子磁带中恢复过来,因为该范式似乎只有在您创建允许高级开发的设计时才有效。
话虽如此,我非常喜欢Django如何在Django模型中实现裸对象。我喜欢这个框架的大多数事情都是,我开始相信,它是模型的直接结果,我想分享一些关于架构的惊叹:
映射到表列的模型字段在行为上是完整的对象 - 它们知道如何在应用程序域和数据库域中表示它们,如何在两者之间转换它们,以及它们所保存的信息如何被验证并以可视方式显示给用户以进行输入。所有这些都通过模型中的一行代码来利用。哇!
经理附加到模型,并提供 CRUD 和对集合的任何通用操作,例如可重用查询(给我最近五篇博客文章、最常出现的标记等)、批量删除\更新操作以及在实例上执行的业务逻辑。哇!
现在假设您有一个表示用户的模型。有时,您只想部分查看用户模型持有的所有信息(重置用户密码时,您可能只需要用户的电子邮件和他的秘密问题)。他们提供了一个 Forms API,该 API 仅显示和管理部分模型数据的输入。允许在处理用户输入时对内容/方式进行任何自定义。哇!
最终结果是,您的模型仅用于描述您用于描述特定域的信息;经理对模型执行所有操作;表单用于创建视图和处理用户输入;控制器(视图)仅用于处理HTTP动词,如果它们与模型一起使用,则仅通过管理器和表单;视图(模板)用于演示文稿(无法自动生成的部分)。恕我直言,这是一个非常干净的建筑。可以在不同的模型中使用和重用不同的管理器,可以为模型创建不同的表单,不同的视图可以使用不同的管理器。这些分离度使您能够快速设计应用程序。
您创建了一个智能对象生态系统,并从它们的互连方式中获取整个应用程序。前提是它们是松散耦合的(让它们以不同的方式进行通信的可能性很大),并且可以轻松修改和扩展(针对该特定要求的几行),遵循范例,您确实可以获得一个架构,其中组件编写一次,然后在其他项目中重用它。这是MVC应该一直以来的样子,但我经常不得不从头开始写一些东西,即使我在几个项目前做了同样的事情。