哪个班级应该做的工作?

时间:2015-03-28 11:44:00

标签: java architecture

我正在为我的论文建立一个销售系统,我在自己的设计中一直在与自己辩论,哪个班级应该做这项工作?

所以从这3个班级开始;

设施类 - 此类是其他人与GUI之间协调员的中心类

产品类 - 代表产品的详细信息

销售类 - 代表多个商品的销售

在销售产品时,我的主要问题是:

"哪个班级应计算总价格"。设施类或销售类?

什么是最佳做法?

提前致谢

3 个答案:

答案 0 :(得分:1)

如果考虑MVC,模型是产品和销售,控制器是工厂和视图没有被提及。

如果这应该是一个设计合理的解决方案,您将添加一个服务层,它将完成实际工作。

因此,模型保存数据,视图显示数据,控制器在模型和视图之间编排数据,以及将对数据(预订)执行业务逻辑的服务层。

还有一个变体,其中视图具有特定的视图模型类,它将为视图专门准备数据和数据集合。但对于你的情况,这并不重要。

答案 1 :(得分:0)

我认为,作为一般规则,设施或经理类应该总是仅仅作为用户和其他类之间的缓冲区,这使我说你应该把总数销售类别中的价格计算。

销售类首先是设计用于处理多个商品的销售,这意味着应该有一种方法可以返回所有当前购买的商品的价格,然后将其传递给要显示的接口类。

答案 2 :(得分:0)

我的第一个冲动是按照他们的责任命令这些类关于模型 - 视图 - 控制器设计(因为你提到了一个GUI和一个接口类)。

  • Facility - 根据您的陈述,它是控制器,它将GUI(视图)连接到您的数据(模型)。
  • Product - 这是一个模型类,因为它包含数据和业务逻辑。
  • Sale - 此类与多个Products相关联,多个Products共享相同的Sale,因为产品可以多次销售(这是一个假设并且销售可以包括多种产品。它也是一个模型类。

由于Sale代表多个产品,并且您感兴趣(例如)这些产品的个别价格总和,这将是存放该方法的地方。