RoR*_*RoR 1 c# oop information-hiding interface
鉴于接口也用于帮助隐藏信息,仅向用户提供允许使用的可能方法的子集,并且,假设我有一个Person
类和接口IPerson
.
现在在主,我被允许做
IPerson testy = new Person();
Run Code Online (Sandbox Code Playgroud)
要么
Person testy = new Person();
Run Code Online (Sandbox Code Playgroud)
所以我真的不限制使用Person了.那么界面如何真正隐藏数据呢?
接口本身并不用于"隐藏"任何东西.它用于在调用者和实现之间建立合同.该合同承诺"这些方法和属性将在这里,它们不会改变".
接口还开启了改变实现的可能性,而无需调用者处理它.这在去耦设计中至关重要.
你的问题意味着你main
想知道关于Person
班级的一切.你实际得到的是耦合代码,这是更难测试."修理"这个你必须改变你的心态,并认为:main
根本不想知道的一切Person
,这是只关心IPerson
,只需要接口.不多也不少.
归档时间: |
|
查看次数: |
1104 次 |
最近记录: |