OO原则与面向对象三大特性

OO五大原则:

单一职责原则:
类的单一职责是说一个类应该只做一件事情,如果类中某个方法或属性与它所要完成的职责无关或是为了完成另外的职责那么这样的设计就不符合类的单一职责。而这样的设计的缺点是降低了类的内聚性增强了类的耦合性,另外一个很客观的问题是当我们使用这个类时把我们原本不需要的功能也带到了我们的代码中,从而是文件变大,增加内存开销。包括里面定义的变量越多越庸肿.

开闭原则
根据开闭原则,在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关闭)的基础上,能扩展其功能(扩展开放)。

里氏替换原则

子类应当可以替换父类并出现在父类能够出现的任何地方

继承并且覆盖超类方法的时候,子类中的方法的可见性必须等于或者大于超类中的方法的可见性,子类中的方法所抛出的受检异常只能是超类中对应方法所抛出的受检异常的子类。

依赖倒置原则

DIP原则其实强调的是:不要让不经常发生变化的部分去依赖于经常发生变化的部分。简言之面向接口,或抽象编程。

即:要依赖于抽象,不要依赖于具体。简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。

接口隔离原则

使用多个专门的接口比使用单一的总接口要好。
一个类对另外一个类的依赖性应当是建立在最小的接口上的。
一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

面向对象三大特性:
封装:把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是讲世界描绘成一系列完全封闭的对象。编写类,就是对数据和数据操作的封装。是其他特性的基础。实现单一职责原则。

继承:从已知类得到继承信息创建新类的过程。继承让变化中的软件系统有一定的延续性,继承也是封装中可变因素的重要手段。

多态:允许不同子类型的对象对同一消息作出不同的响应,简言之:用同样的对象引用调用同样的方法但是做了不同的事情。多态分为编译时多态和运行时多态。方法重载就是编译时多态。运行时多态是面向对象的精髓。实现多态的条件:1.方法重写,2对象造型。父类引用子类对象。多态是开闭原则,面向接口和抽象编程依赖倒置,里氏替换,接口隔离的基础。

2016-08-22

posted on 2016-08-22 13:37  青木堂  阅读(991)  评论(0编辑  收藏  举报

导航