gpt4 book ai didi

java - 继承与策略模式

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

我正在学习编程模式,我们的期末作业要求我们构建一个“在线商店”。

我正在考虑如何对User建模,它可以是AdminCustomer

我考虑了策略模式来对每个单独的用户及其特定行为进行建模。

到目前为止,他们没有共享任何行为,因此管理员无法addToCart客户无法registerNewProduct .

但是,随着系统的发展,他们可以共享行为/方法!

此外,User 不会在运行时更改其类型。即,一旦您以客户身份登录,您就无法以管理员身份重新登录。

即使他们共享诸如 seeProductList 之类的行为,这也可以通过良好的继承来实现,对吧?

我应该使用策略、继承还是您会推荐其他模式?

如果您需要更多信息,请告诉我! :)

提前致谢。

最佳答案

我认为您已经陷入了模式迷局

实际上,这里没有明显的理由使用策略。我们先来看看Strategy最突出的特点是什么? 。

Strategy is a behavioral design pattern that lets you define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from the clients that use it.

据我所知,如果您想使用不同的方法/算法来解决同一问题,您可以使用策略

演示是parse(File file),并且有多种方法可以针对不同场景解析文件。

策略 - 1:

parseInParallel(File file) // when in single-user system;

策略 - 2:

parseSequatially(File file) // multi-user system;

你看,他们实现了相同的目标,但使用了不同的方法。

就您而言,我建议继承,因为客户管理员之间有很多共同特征,其中可能包括:

  1. 姓名;
  2. 年龄;
  3. 电子邮件;
  4. 性别;
  5. 地址;
  6. 电话;
  7. 以及更多与人相关的其他内容...

但是正如您已经提到的,很多方法都是不同的。因此,您可以将它们单独添加到子类中,因此基本上您将拥有PersonCustomerAdmin

Person有最基本的信息和方法,Customer有与客户相关的方法和新字段,Admin类似。

关于java - 继承与策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51585012/

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