摘要: class Fax { } class LaserPrinter : Fax { } delegate Tresult Func<in T,out Tresult>(T arg);//out关键字指定该类型参数是协变的,in关键字指定该类型参数是逆变的 class Program { private static T Min<T>(T o, T b)where T:class,IComparable<T> { Func<Fax, LaserPrinter> l = teee; ... 阅读全文
posted @ 2011-12-14 15:22 Rookier 阅读(351) 评论(1) 推荐(0) 编辑
摘要: 在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。OO设计的五大原则之间并不是相互孤立的。彼此间存在着一定关联,一个可以是另一个原则的加强或是基础。违反其中的某一个,可能同时违反了其余的原则。因此应该把这些原则融会贯通,牢记在心!OO的五大原则是指SRP、OCP、LSP、DIP、ISP。1. SRP(Single Responsibility Principle 单一职责原则)单一职责很容易理解,也很容易实现。所谓单一职责,就是一个设计元素只做一件事。什 阅读全文
posted @ 2011-12-14 11:38 Rookier 阅读(443) 评论(0) 推荐(1) 编辑