软件设计思想概述

文中所述仅为自我便于理解,表述简单不全。不适合深入研究,详细的介绍可参考:http://blog.csdn.net/zhengzhb/article/category/926691

 

面向对象编程四大特性

 

抽象:对有共性的事物中待关注的部分加以抽象成接口或类。包括过程抽象和数据抽象

封装:将具有共性的一类事物的共性部分抽象出来形成一系列封闭的、自治的数据与过程,通过private、protected、public来决定对外开放的级别。封装要做到低耦合高内聚。

 

继承:当具有某些共性时,一个新类可以通过继承另一个已实现的类的方法、数据并加以扩展实现

多态:不同子类对象实现父类的抽象方法的行为可以不一样 (注意与重载的区别)

 

 

面向对象编程6大原则

 

单一职责原则:一个类最好只实现一个粒度足够小的功能,该功能不能再被细分。防止类中出现两个功能相互影响等情况。

里氏替换原则:子类的实现不影响父类已有的非抽象方法调用,只扩展不修改。防止因子类重载或重写父类方法造成调用混淆、功能紊乱等的情况。

依赖倒置原则:高层级的类尽量不要直接对低层级的类产生依赖,而是尽量面向接口编程,通过接口(也可以是方法或委托)传递依赖关系,防止出现低层级的类修改导致原有的高层级调用关系失效的情况。

接口隔离原则:接口实现的功能粒度应最小化,即多个功能应分成多个独立的接口(原则上如此,实际编码可适当酌情设计,把握度),防止类在实现接口时需要实现该类不必要的功能,造成代码复杂度增加

迪米特法则:对象的行为实现要保持对其他对象尽量少的了解,即对象的实现尽量避免对其他的类的依赖,做到高内聚低耦合。 例如A的实现与B和C产生了关联,而B和C属于聚合关系,A的实现可以只和B关联,则就没必要使A和B产生直接的关联。所以一个类应尽量少的依赖其他类,同时也要尽量少的让其他类对你产生依赖。防止修改类时出现藕断丝连的情况

开闭原则:对扩展开放,对修改关闭。即要求用抽象构建框架,用实现扩展细节(http://blog.csdn.net/zhengzhb/article/details/7296944);专门函行为要单一功能,通用行为要抽象。防止后期需求变更引起的代码修改量大

 

面向对象编程的23种特性

 

 

附:

多态与重载的区别:http://blog.csdn.net/weigb/article/details/1864192 多态是对虚方法的重写,编译时无法确定方法调用情况。重载允许一个类中有重名的方法,方法中参数不同。

 

你可能感兴趣的:(软件设计思想概述)