文章分类 - 面向对象编程
摘要:五、接口隔离原则1. 定义 i. 客户端不应该依赖那些它不需要的接口。 ii. 一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。2.分析 i. 接口隔离原则是指使用多个专门的接口,而不使用单一的总接口。每一个接口应该承担一种相对独立的角色,不多不少,不干不该干的事,该干的事都要干。 ii. 使用接口隔离原则拆分接口时,首先必须满足单一职责原则,将一组相关的操作定义在一个接口中,且在满足高内聚的前提下,接口中的方法越少越好。 iii. 可以在进行系统设计时采用定制服务的方式,即为不同的客户端提供宽窄不同的接口,只提供...
阅读全文
摘要:二、依赖倒转原则 1.依赖倒转原则定义 i. 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 ii. 要针对接口编程,不要针对实现编程。 2. 依赖倒转原则分析a) 简单来说,依赖倒转原则就是指:代码要依赖于抽象的类,而不要依赖于具体的类;要针对接口或抽象类编程,而不是针对具体类编程。b) 实现开闭原则的关键是抽象化,并且从抽象化导出具体化实现,如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要手段。c) 依赖倒转原则的常用实现方式之一是在代码中使用抽...
阅读全文
摘要:花絮 每天都在和面向对象打交道,但是我们在应用面向对象的时候感觉自己的面向对象技术应用的很合理?理解的很到位?应用的很到位?用的时候恰到好处?用的是否符合软件的发展趋势? 上面很多一连串的问题,没有把你搞晕吧!我想说的面向对象的应用也有面向对象的原则,一个程序员的编程素质从一个小例子几十行代码就可以展现出来。面向对 象编程是是面向对象的基础中的基础,废话不多说,你要遵循下面向对象的原则编程,那你的编程水平才会大幅度提高!思考 大家可以想象为什么你去面试的是时候一般会给你一小段程序让你去编写?这样的有什么意义?主考官的出题目的是什么?我们应该怎么显示自己代码素质? 我想这...
阅读全文
摘要:透切理解面向对象三大基本特性是理解面向对象五大基本原则的基础.三大特性是:封装,继承,多态所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。封装是面向对象的特征之一,是对象和类概念的主要特性。 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体。在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问。通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分。所谓继承是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承
阅读全文
摘要:一、未使用虚函数的继承 a)父类与子类定义class Father{ public: Father(){} ~Father(){} void print(){cout<<"这是父类:Father"<<endl;}};class Clild_A:public Father{ void print(){cout<<"这是子类:Child_A"<<endl;}};class Clild_B:public Father{ void print(){cout<<"这是子类:Child_B&quo
阅读全文
摘要:声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,.
阅读全文