gpt4 book ai didi

design-patterns - 哪种类结构更可取?

转载 作者:行者123 更新时间:2023-12-04 07:19:43 26 4
gpt4 key购买 nike

我不确定这两种“模式”中哪一种是最好的。目前我使用选项 A(结合提供程序来实现持久性),但我现在倾向于选择 B,特别是考虑到单元测试能够使用“依赖注入(inject)”模型。

选项 A:

class ClassA
{
ClassA() { }
Save();
static List<ClassA> GetClassAs();
}

选项 B:

class ClassA
{
ClassA() { }
Save();
}

class ClassARepository
{
ClassARepository() { }
List<ClassA> GetClassAs();
}

我想我要问的是,类公开返回其自身实例集合的静态方法是否是一种好习惯?

编辑

似乎普遍认为选项 B 是更好的选择。看起来我前面还有很多重构 :S

最佳答案

选项 B 看起来有点像 ActiveRecord模式(我假设 ClassA 中的 Save 方法将使用 ClassARepository ?),这在某些情况下很好,但是,如果您有相当复杂的域模型,我不会使用“ActiveREcord”模式。

相反,我会使用这样的模型:

public class ClassA
{
public int Id {get; private set;}
public string Name {get; set;}
}

public class ClassARepository
{
public ClassA Get( int id );

public void Save( ClassA item );
}

这意味着所有与持久化相关的逻辑都放在 ClassARepository 类中,而 ClassA 也没有直接访问存储库的权限。

关于design-patterns - 哪种类结构更可取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/730083/

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