Java 策略模式中的不同返回类型和签名



在下面的案例中使用策略模式我有点困惑。

我有下面的MyEntity类。

public class MyEntity {
private long id;
private long userid;
String firstname;
String lastname;
// other fields

我有以下情况

  1. getMyEntity (long user_id)接受user_id作为参数并返回具有相同数据库user_id的列表。
  2. updateMyEntity (MyEntity myEntity )接受 MyEntity 作为参数并在数据库中更新此 MyEntity。
  3. deleteMyEntity (long id)接受ID作为参数并在数据库中删除此MyEntity。
  4. addMyEntity (MyEntity myEntity )接受 MyEntity 作为参数并将此 MyEntity 添加到数据库中。

具有上述要求的Java策略模式。如果方法具有相似的输入参数和相似的输出参数,我可以在 Java 中使用策略模式。但是就我而言,我有不同的输入参数和不同的输出参数,所以我对如何使用策略模式感到困惑。
请指导我这个案例。

虽然答案只是与编程有关,但我认为这对专业程序员很重要。

策略模式是一种行为模式,即它用于改变程序(某些部分(的行为方式。将 CRUD 方法定义为行为对我来说听起来非常非常违反直觉。您可以定义一个抽象行为并将每个 CRUD 操作实现为此行为的具体实例化,但我不想想象这种解决方案所需的抽象级别。

既然你">必须使用策略模式",你应该去和给你这个限制的人谈谈。请她/他解释在这种情况下如何使用策略模式。现在重要的部分来了:如果他*他无法解释为什么以及如何使用它,那就不要使用它。并清楚地传达您不会使用它。甚至可能反驳这个论点。

您是专业人士。你工作的主要部分是说"不",当"不"是有序的。如果在您要求澄清后,与编程相关的内容对您来说似乎不合理,那么肯定应该说"不"。

策略模式似乎不适用于您的情况。 你应该阅读关于金锤反模式的信息:https://exceptionnotfound.net/the-golden-hammer-anti-pattern-primers/

但是,如果您真的想应用它,则可以更改方法签名,以便只能传递联系人参数。

最新更新