张志峰的博客

水滴石川,积少成多。

导航

随笔分类 -  Object-Oriented

面向对象
摘要:三个OOP的概念: 1.封装,把相关的数据和代码结合在一起,并隐藏实现的细节。封装的好处就是有利于程序的模块化,把代码和其他代码分开。 2.继承,是指一个新的对象能够从父对象中获取属性和方法,这种概念来建立的VCL这样的对层次的对象,其实就是建立一个通用的对象,然后在创建这些通用对象的有专用功能的子对象。 3.多态性,实际调用的代码与实际在变量中的对象的实例有关。 阅读全文

posted @ 2011-08-04 16:07 ╰★张志峰★╮ 阅读(179) 评论(0) 推荐(0)

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

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

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

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

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

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