我正在学习业务模型和UML。我读到“模型”是一系列的“业务对象”。
据我所知,一个模型将是‘博客’,而业务对象可以是‘帖子’和‘评论’。“Blog”决定使用哪些对象以及如何使用适当的映射器。
我拼凑了几个UML图来探索这个概念,它看起来确实很符合逻辑。不过,我有点困惑:
问题#1 -在Joomla模型中,似乎表示一个单一的“业务对象”(而不是协调多个业务对象和映射器)。Joomla对模型采用了不同的方法吗?
问题#2 -“Mapper”对象在查询中执行左联接是否可以接受?还是应该将这种逻辑移到“服务”层?
使用数据库的左连接功能似乎是最合乎逻辑的,但我不知道这如何适合(Mapper + BusinessObject + Model + Service)设计。
发布于 2011-05-17 00:54:32
在许多框架和应用程序中,您会发现一个Model = Business对象,并且经常会将Mapper内部化为某种奇异的基本模型,所有其他人都会对其进行扩展。您还会发现他们中的许多人缺乏定义良好的服务层。
这将提供给您关于映射器和服务的第二个问题。我通常不使用服务层,但理想情况下,您的映射程序将得到来自DB的数据,我认为它通常驻留在服务层中,然后它将数据映射到业务对象中。但是,在使用映射器时,我通常会将特定于表的db逻辑直接集成到私有或受保护的映射器中。
然而,在大多数情况下,im使用通常实现活动记录的ORM,因此在描述映射器本身时没有真正的隔离,然后倾向于按照我在第一段中描述的方式工作。
此外,Joomla可能不是研究这些概念的最佳应用程序。实际上,大多数PHP应用程序都不是很好的例子,无论它是Joomla、PHPBB、Drupal还是其他:-)
发布于 2011-05-17 08:29:09
在java语言中,持久性注释在代码中作为java注释编写。这真的很酷,因为您可以专注于对象,从而在类图中对应用程序进行建模。
请注意,只有类图具有真正的代码等效,而其他图则使用带有代码生成器的模型驱动开发。这一点很重要,因为只有类图可以一起用于Business和mapper。
您仍然可以使用AndroMDA并使用代码生成器创建持久化层,但我认为这种方法在使用Java代码时已经死了。
它是如何工作的。对类图进行建模以创建静态对象(例如包、类、接口、枚举等)类图中的应用程序。然后添加持久性构造型,这将立即在代码中创建java注释。最后,要创建数据库,只需使用Hibernate映射器,它将在条目中使用java代码并生成数据库。在部署阶段,您将需要直接在与数据库相关的代码sql查询中编写代码,但这是最新的、通常没有关键的开发,可以在离岸国家完成。
https://stackoverflow.com/questions/6024877
复制相似问题