gpt4 book ai didi

oop - 关于面向对象的问题

转载 作者:行者123 更新时间:2023-12-02 07:57:16 26 4
gpt4 key购买 nike

自从我学习面向对象编程时,我就有了这个问题。现在,我有一个很棒的论坛,我想问这个问题。

假设我们正在使用 EJB 实现员工管理应用程序。

现在,有两种方法可以做到这一点。

  1. 通常,我们创建代表员工的实体 (POJO)。然后我们使用添加、删除、更新、检索、retrieveAll 方法创建一个 EJB 接口(interface)“EmployeeManager”。这样我就可以将“员工”实体用作数据传输对象。

  2. 我们称 EJB 接口(interface)本身为“雇员”。实现可以称为“EmployeeImpl”,它具有字段 以及方法实现(添加、删除、更新、检索、retrieveAll)。如果我使用分层方法,其中我的业务逻辑需要访问员工详细信息,我需要传递“EmployeeImpl”(因为它包含值)。

您认为哪种方法更好?

我更喜欢第一个,因为它“看起来”不错而且不会让人觉得尴尬。喜欢

EmployeeMgr empMgr = // JNDI lookup;
Employee emp = new Employee();
empMgr.add(emp);
Employee employees[] = empMgr.retrieveAll();

第二个会是什么样子(虽然我不确定),

Employee emp = // JNDI lookup;
emp.setName(); //set the properties
emp.add();
Employee employees[] = emp.retrieveAll();

如您所见,第二个看起来很尴尬。

我请求你们就此向我提出建议。

谢谢馒头

最佳答案

在您的示例中,我不推荐#2,因为它赋予了 Employee 类太多职责。

虽然没有给出直接的答案,但我可以诚挚地推荐 Martin Fowler 的书 Patterns of Enterprise Application Architecture .它让我个人大开眼界,并描述了几种不同的方法。

我也认为开源 Hibernate是持久化实体的好工具。我相信您会在那里找到很多好的输入。

关于oop - 关于面向对象的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/118040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com