在下面的案例中使用策略模式我有点困惑。
我有下面的MyEntity类。
public class MyEntity {
private long id;
private long userid;
String firstname;
String lastname;
// other fields
我有以下情况
getMyEntity (long user_id)
接受user_id作为参数并返回具有相同数据库user_id的列表。updateMyEntity (MyEntity myEntity )
接受 MyEntity 作为参数并在数据库中更新此 MyEntity。deleteMyEntity (long id)
接受ID作为参数并在数据库中删除此MyEntity。addMyEntity (MyEntity myEntity )
接受 MyEntity 作为参数并将此 MyEntity 添加到数据库中。
具有上述要求的Java策略模式。如果方法具有相似的输入参数和相似的输出参数,我可以在 Java 中使用策略模式。但是就我而言,我有不同的输入参数和不同的输出参数,所以我对如何使用策略模式感到困惑。
请指导我这个案例。
虽然答案只是与编程有关,但我认为这对专业程序员很重要。
策略模式是一种行为模式,即它用于改变程序(某些部分(的行为方式。将 CRUD 方法定义为行为对我来说听起来非常非常违反直觉。您可以定义一个抽象行为并将每个 CRUD 操作实现为此行为的具体实例化,但我不想想象这种解决方案所需的抽象级别。
既然你">必须使用策略模式",你应该去和给你这个限制的人谈谈。请她/他解释在这种情况下如何使用策略模式。现在重要的部分来了:如果他*他无法解释为什么以及如何使用它,那就不要使用它。并清楚地传达您不会使用它。甚至可能反驳这个论点。
您是专业人士。你工作的主要部分是说"不",当"不"是有序的。如果在您要求澄清后,与编程相关的内容对您来说似乎不合理,那么肯定应该说"不"。
策略模式似乎不适用于您的情况。 你应该阅读关于金锤反模式的信息:https://exceptionnotfound.net/the-golden-hammer-anti-pattern-primers/
但是,如果您真的想应用它,则可以更改方法签名,以便只能传递联系人参数。