在这种情况下我应该/可以使用Java抽象工厂(或工厂方法)吗?

问题描述 投票:0回答:1

在编码练习中,我想为假设的商店创建一个 Java 软件:我有一个 User 超类和三个子类:管理员(可以管理产品目录和客户列表)、客户(从目录中选择产品和系统创建一个列表,显示给员工(以便继续付款)和员工(帮助客户付款,如果没有问题,最后向客户发送电子邮件)。显然,这些是我刚刚发明的函数,用于证明三种不同用户类型的存在。 用户具有属性:id、电子邮件、密码。管理员属性为:名字、姓氏、工资、电话号码。厨房属性为:员工数量、每月运行费用。客户属性为:名字、姓氏、出生日期、职业、居住地。

在软件代码中的某个地方,我显然需要为每种类型的用户创建新实例。 为什么以及如何使用创建模式(抽象工厂/工厂方法)而不是三个子类的参数化构造函数?

java design-patterns constructor abstract-factory factory-method
1个回答
0
投票

原因

工厂将更具可扩展性和可维护性。如果需要添加新的用户类型或者改变用户的创建方式,只需要修改工厂即可。这样就无需查找和更新代码中创建用户的每个位置。

工厂允许抽象(如 User 超类或接口)而不是具体实现。这样可以简化客户端代码,减少耦合。

工厂确保所有用户都以一致的方式创建。如果在用户创建过程中需要其他步骤(例如验证或设置默认值),可以在工厂中处理。

如何

这个问题你可以自己解决。

© www.soinside.com 2019 - 2024. All rights reserved.