我有一个仓库。有时我想通过名称查找框位置,有时通过描述,有时通过 UPC,也许还有其他东西等。这些查找方法中的每一个都调用相同的各种私有方法来查找信息以帮助定位数据。
例如,upc 调用一个私有方法来查找 rowid,name 也是如此,X 也是如此。所以我需要为所有这些方法提供该方法。我可能会以某种方式使用该 rowid 来查找货架位置(这只是一个示例。)
但我的问题是我是否应该有一个抽象类(或其他东西),因为我正在以不同的方式查找我的盒子。
换句话说,假设我的查找代码对于 UPC 和位置非常相似。每个方法都可以使用 (select * from xxxx where location =,或 select * from xxxx where upc =) 调用。我可以在同一个类中创建两个不同的方法
LocateByUPC(string upc)...
LocateByLocation(string location)...
LocateByDescription(string description)
...再次,这将是一个大类
有什么理由我想要一个可以举行的超级课程
abstract class MySuper
{
properties...
LocateBox(string mycriteria)...
}
然后继承它并创建第二个类来覆盖我需要的任何版本的 LocateBox 方法?
我不知道为什么我想这样做,除了看起来 OOD,这真的意味着如果我有充分的理由我想这样做。但是,我知道没有优势。我只是发现我的类变得越来越大,我只是稍微改变了方法的名称和一些代码,这让我觉得继承可能会更好。
如果这很重要,请使用 C#。
编辑 - 如果我只给某人一个没有源但类定义的 .dll,我会这样做吗?类定义。会告诉我的属性等以及要覆盖的方法。