sve*_*rap 3 .net c# design-patterns class-design
我在接受采访时被问到有关接口的问题.我不确定这是否真的有可能.请看下面的问题.
有3个接口A,B和C. A继承自接口B和C:
public interface A : B,C
{
}
Run Code Online (Sandbox Code Playgroud)
我们必须确保该接口的用户无法使用B,并C直接或独立,只有使用A.
我可以想到以下场景:
B和C内部接口.但我没有看到任何实际用途,因为我可以直接定义所有成员A本身.B和C私人接口.但我怎么能做到呢?此外,我在下面的MSDN链接中看到,B并且C必须至少像A一样可访问:http://msdn.microsoft.com/en-us/library/aa664578%28v=VS.71%29.aspx.有没有办法做到这一点,或者问题本身是错的?
你要求的是违反Liskov替代原则.
如果以这种方式A实现B,它应该始终可以直接用作a B.试图阻止这种情况将违反面向对象设计的主要原则之一.
我怀疑面试官试图看看你是否理解这个核心概念,并且从一开始就会说"这是错误的,因为......".
| 归档时间: |
|
| 查看次数: |
118 次 |
| 最近记录: |