张志峰的博客

水滴石川,积少成多。

导航

上一页 1 ··· 116 117 118 119 120

2011年7月8日

摘要: 首先,什么是多态(Polymorphisn)?按字面的意思来讲,就是“多种形状”。笔者也没有找到对多态的非常学术性的描述,暂且引用一下Charlie Calvert对多态的描述——多态性是允许用户将父对象设置成为与一个或更多的它的子对象相等的技术,赋值之后,基类对象就可以根据当前赋值给它的派生类对象的特性以不同的方式运作。 更简单地说就是:多态性允许用户将派生类类型的指针赋值给基类类型的指针。多态性在Object Pascal中是通过虚方法(Virtual Method)实现的。 什么是“虚方法”?虚方法就是允许被其派生类重新定义的方法。派生类重新定义基类虚方法的做法,称为“覆盖”(overr 阅读全文

posted @ 2011-07-08 16:02 ╰★张志峰★╮ 阅读(1155) 评论(0) 推荐(0) 编辑

摘要: 语义上的“继承”表示“是一种”的关系,派生类可以被看作“是一种”基类,这是一个最基本的、必须满足的前提。正如苹果是一种水果这么理所当然。在设计类关系时,可以将若干类的共性抽象出来,集中在它们的基类中实现。但如果类A不是一种类B,也就是说,A不能无条件地出现在B的位置上取代B,那么无论如何,不要把A设计成B的派生类。这被称为“多态置换原则” 阅读全文

posted @ 2011-07-08 15:01 ╰★张志峰★╮ 阅读(376) 评论(0) 推荐(0) 编辑

摘要: 1.必须保证接口是功能的全集,即接口能够覆盖所有需求。不能完成必要功能的封装是毫无意义的。 2.尽量让接口是最小冗余的。这是为了简化客户的学习,难用的封装是容易被人遗忘的。冗余接口的存在是被允许的,但必须保证冗余接口是有效的。也就是说,增加这个冗余接口会带来非常大的好处,比如性能的飞速提升。 3.要保证接口是稳定的。将接口和实现分离,并将实现隐藏,就是为了能保护客户的代码在功能实现细节改变的情况下,不必随之改变。三天两头改变接口的封装是惹人讨厌的。记住一个原则:一旦接口被公布,永远也不要改变它! 阅读全文

posted @ 2011-07-08 14:24 ╰★张志峰★╮ 阅读(616) 评论(0) 推荐(0) 编辑

摘要: 一 、类级别的封装 类级别的封装是最常见的封装形式。 每个Object Pascal的类,有四种访问级别:private、protected、public、published。其中,public的成员可以被外界的所有客户代码直接访问;published和public差不多,区别仅在于published的成员可以被Delphi开发环境的Object Inspector所显示,因此一般将属性或事件声明于published段;private成员为类的私有性质,仅有类本身和友元可访问;protected成员基本与private类似,区别在于protected可以被该类的所有派生类访问。 在类级别的封装 阅读全文

posted @ 2011-07-08 11:46 ╰★张志峰★╮ 阅读(400) 评论(0) 推荐(0) 编辑

上一页 1 ··· 116 117 118 119 120