【发布时间】:2012-08-10 10:46:09
【问题描述】:
我有两个存储库类(RepositoryFactory 和 BaseRepository)在同一个项目中实现不同的接口。 BaseRepository 类有一个私有方法,现在其他类也需要该方法,具有相同的实现。
我没有复制该方法以使其保持私有,而是考虑一个可能的替代方案,尽管到目前为止我找不到一个好的解决方案,因为根据定义,私有方法仅在其自己的类中具有范围。
使用继承并将方法更改为“受保护”也不是一种选择,因为这两个类在语义上没有链接。由于返回类型为 void,因此我无法使用返回方法结果的公共属性。
【问题讨论】:
-
他们在同一个项目中;
internal不够吗? -
那么,您的意思是
RepositoryFactory构造了BaseRepository的各种后代,并且您希望工厂在返回之前通过私有方法对对象执行某些操作? -
如果你希望它可以被其他类访问,你不能使用
private。 -
您在 C# 中寻找 C++ 的
friend类?抱歉,不存在。正如 Marc 建议的那样,最接近的选择是internal。 -
很难想象两个不同目的的类可以有相同的功能实现。他们一定有共同点。那么为什么不直接从一个新的抽象基类派生这两个类呢?
标签: c#