我在Java中理解的建议(有很多限制,至少对我而言是这样),即使使用休眠模式,也要具有单独的层
在我从埃菲尔铁塔和商店开始时,我遇到了自编程以来就面临的一些困难(希望这个地球上有人不存在相同的问题),我总是想对事情进行归纳。每次我执行复制粘贴操作时,我都会重构并寻找一种解决方案,使我能够一次编写它……这在交付软件时需要花费时间和时间,但是对我来说,这增加了质量和灵活性软件。我实际上是在一家公司工作,我将成为首席开发人员,如果将来需要,我们将成为更多开发人员。目标是在Eiffel,postgresql-odbc和Angular-web前端中开发服务平台。
我希望拥有更通用的模式,以便将来能够在以下典型情况下管理实体:
@我现在要说的是,我要开发一种对我来说理想的架构:
关系类将帮助我以更抽象的方式在“服务”层中创建CRUD SQL语句。
答案 0 :(得分:0)
Quenio dos Santos 不想在stackexchange上创建一个帐户,我会引用它的答案,这可能对其他人有用
不仅仅是因为存储库模式。
您应该能够实现可重用的抽象类, 存储库模式,如果您想摆脱重复的代码。在 Java,MyBatis是一个可以帮助实现这一目标的框架。我真的不知道 如果在埃菲尔铁塔中有任何等效的我也是新来的埃菲尔 开发人员。
存储库模式的一些优缺点:
- 您可以自己定义SQL。有些人将其视为利弊,但有些人则将其视为利弊,因为您对 数据库到您的班级,它使您可以优化自己的 查询,并将多个表连接到一个或更少的类中 在您的上下文中适合的班级数量。
- 在定义域模型方面拥有更大的自由度。它可能与数据库的模式完全不同。您的课程不必 只是表中一组贫血的属性持有人 数据库,但是它们可以具有行为,并且在 设置完全独立于您的数据库。
像Hibernate这样的- ORM框架有时对于不太熟悉它们的新开发人员来说很难使用。使用存储库模式, 因为映射是如此清晰并在您自己的代码中可用,所以它 往往更易于理解和调试。
- 对于不同的技术(例如NoSQL数据库),您还可以对存储库执行不同的实现。有了ORM框架, 除非您重做,否则您往往会陷入关系数据库中 您对ORM框架的依赖性很大。更容易 将数据存储技术封装在存储库后面,并保持 域模型和数据库之间的清晰分隔。
我要说的是重点。话虽如此,这些非常 一般准则。我没有持久数据的经验 在埃菲尔铁塔上,所以我无法说出埃菲尔铁塔的最佳做法是什么 开发人员。但是我有一种直觉,认为存储库模式适合 埃菲尔(Eiffel)很好,因为该语言的最初目标是建立 更抽象,领域更丰富的类库,这是目的 在存储库模式后面。 (顺便说一句,我称之为模式, 但我不确定作者是否这样称呼。作者可能会 调用集合,实体和存储库,使用的各种类 在域驱动设计中,所有这些都是一种模式。)