摘要:
接口和虚方法的使用的场景各有所指,总的来说实现接口要比重载virtual方法更具有灵活性。你可以sealed、virtual实现的方法或用abstract来定义方法契约,甚至可以在实现接口的方法中调用virtual方法来获取子类对父类方法重载的多态控制,和父类对自己实现的统一控制。父类的虚方法可以提供所有子类对该方法的默认实现,而接口提供了多种方法定义组合(因为可以被多继承),对外提供了更加灵活的暴露契约的方式。 阅读全文
随笔档案-2011年7月13日
Effective C# 学习笔记(二十二)多用接口定义实现,少用继承
2011-07-13 16:08 by 小郝(Kaibo Hao), 323 阅读, 收藏,
摘要:
首先从宏观上区分接口和类型
1. 接口定义了行为
2. 类型定义特性及继承结构,即是实体间的关系
接口和抽象类的区分
1. 接口和抽象类都可定义行为而不实现 ,但抽象类可以实现也可不实现
2. 接口可以被多继承(实现),抽象类只可被继承一个 阅读全文
Effective C# 学习笔记(二十一)为类型定义有限的职责
2011-07-13 16:04 by 小郝(Kaibo Hao), 265 阅读, 收藏,
摘要:
将类型或类型的方法对外暴露得越少,你将会获得更多的可扩展性,更容易修改其实现,将会减少更多的单元测试。 阅读全文
Effective C# 学习笔记(二十)不可变的原子值类型的好处
2011-07-13 16:03 by 小郝(Kaibo Hao), 520 阅读, 收藏,
摘要:
不变的原子值类型指的是那些其每一个属性可能因任何一个属性的改变而需改变,每个属性都不能独立更新的类型。这种类型的实现方式有许多要注意的地方,主要目的是防止在赋值时出现非法临时状态,可以使用构造函数赋值和Copy创建可变类型属性的方法来保证其数据的合法性。 阅读全文
浙公网安备 33010602011771号