面向对象的三大要素和五大原则

来源:互联网 发布:经理人采购指数 知乎 编辑:程序博客网 时间:2024/04/28 12:21
1.三大要素 封装,继承,多态

2.五大原则:

(1)单一职责原则(SRP:Single Responsibility Principle)一个类,最好只做一件事,只有一个引起它变化的原因

      举例:图书馆和宿舍都有桌有椅,为什么学习还是应该去图书馆?因为宿舍有人看球,有人吃饭,和其他事情,相互干扰,违反了单一职责原则。也就是说 一个类如果继承了多个职责,那么这些职责在并发执行时可能会相互干扰

 

(2)开放封闭原则(OCP:Open Close Principle)软件实体应该是可扩展的,而不可修改的。也就是说对扩展开放,对修改封闭

        举例:你想要变帅,有两种方法。一.穿漂亮衣服,做头发,化妆,这些就是扩展  二.你也可以整容,割双眼皮,隆胸等这就是修改。  之所以对修改关闭,是因为修改是要付出代价的,通常都是危险的。所以说一修改就容易出现Bug,应该对修改关闭

 

(3)依赖倒置原则(DIP:Dependency Inversion Principle)高层模块不应该依赖于低层模块,应该依赖于抽象,抽象不应该依赖于细节,细节应该依赖于抽象

        举例:之前我们通过货物交换的方式来买到自己想要的东西,比如我用一个斧子换了一只鸡,但是感觉太麻烦了,所以我们发明了货币,任何一个商品都是有价值的,所谓的交换无非就是按各自的价值量去交换,既然如此那就用货币来代表这个抽象的价值量,其他东西都来跟他交换就可以了    这就是依赖倒置原则

(4)接口隔离原则(ISP:Interface Segregation Principle)客户端不应该依赖他不需要的的接口,一个类对另一个类的依赖应该建立在最小的接口上,应该多使用一些小的接口,而不是使用一些大的接口

         1.使用多个专门的接口比使用单一的总接口要好

         2.一个接口代表一个角色,不应该将不同的角色给一个接口没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。

(5)里氏代换原则(LSP:Liskov Substitution Principle)所有使用基类的地方必须能够透明的使用其子类的对象

        举例:人固有一死,列宁是人,所以列宁会死。这句话是对的,这里人是基类,列宁是子类,所以这就是一个里氏转换原则。

0 0
原创粉丝点击