gpt4 book ai didi

c# - 基础实体类。 N休眠

转载 作者:太空狗 更新时间:2023-10-30 01:08:59 24 4
gpt4 key购买 nike

像这样实现实体基类是否是一个好习惯:

[Serializable]
public abstract class Entity<T> : IComparable<Entity<T>>, IFormattable
{
public abstract Int32 CompareTo(Entity<T> entity);
public abstract String ToString(String format, IFormatProvider provider);

// ...
}

因此所有派生类都必须实现这些接口(interface)。放IComparable<T>合理吗实体类的接口(interface)?谢谢!

最佳答案

这不是一个(或)的做法 - 它完全取决于您的需要。

在一般级别指定 IComparable 会带来风险,即比较继承链中更下方的某些对象可能没有意义。即使你可以比较两个对象,它总是有意义吗?您可能需要编写代码行来满足永远不会使用的契约(Contract) - 注意 YAGNI circumstances .

但是,如果您需要创建一个绝对契约以便可以比较从 Entity 继承的任何对象,这会很好。这使您可以在代码中做出积极的假设。

关于c# - 基础实体类。 N休眠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955916/

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