设计模式或者说面向对象的6大基本原则

设计模式基本原则

先说为啥写这篇。没法子。这种理论东西居然成为了面试的考题,只能说明中国有些东西跑偏了。但是没法子。社会风气如此,面对这种问题,你只能跟皇帝的新衣里头那群大人一样,不能说不好看。

回到正题,我先说说这6个基本原则是啥
1、单一职责原则(Single Responsibility Principle)
定义 : 应该有且只有一个原因引起类的变化

这种原则从字面意思看上去好像无比正确,但是编程这个工作是完成现实到抽象的转换的。现实中有没有单一职责的事物,有,有没有多职责的事物,也有。那为啥要规定这个原则意义何在。

2.里氏代换原则(Liskov Substitution Principle)
定义 : 只要父类出现的地方子类就一定可以出现,而且替换为子类也不会出现任何异常或错误,使用者不需要知道是父类还是子类.但是返回来就不行了,有子类出现的地方,不一定能使用父类

这个原则主要还是面向对象编程如何优雅设计子类父类的一种原则问题,但是面对对象只解决了如何抽象到现实的一种转换方法,这种方法是牺牲了快捷这个需求的对比面向函数编程。这两种方式都有优缺点,
这里不展开说明

3、依赖倒置原则(Dependence Inversion Principle)
定义 : 依赖倒置原则包含三个含义

高层模块不应该依赖低层模块,两者都应该依赖其抽象
抽象不应该依赖细节
细节应该依赖抽象

这个原则依然是这个原则主要还是面向对象编程如何优雅设计子类父类的一种原则问题,我理解是一种分层的思想。就是抽象抽象再抽象,这样能保证在这个继承体系上能容纳更多对象。

4、接口隔离原则(Interface Segregation Principle)
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

这个原则跟单一职责原则类似。是天然的理想化东西。总想着设计出来的东西是最小最精,在现实转换成机器语言的过程的初级阶段是可以实现的。但是一旦系统多层化,这些原则要还是遵循基本是自欺欺人。

5、迪米特法则(Demeter Principle)
定义 : 迪米特法则也叫最少知识原则,含义是 一个对象应该对其他对象有最少的了解,这个应该很好理解,就是降低各模块之间的耦合

这个原则其实是降耦合的另一种表达,类跟类之间少通信。要满足这个,呵呵。只能依赖设计良好的通用的第三方类。。

6、开闭原则(Open Close Principle)
定义 : 一个软件实体如类,模块和函数应该对扩展开放,对修改关闭,开闭原则也是其他五个原则的基石

我的理解就是一款软件量产后,维护人员的工作不仅仅对数据进行维护,还可能要对程序进行扩展,维护人员最乐意的事是扩展一个类,而不是修改一个类。让维护人员读懂原有代码,再进行修改,是一件非常痛苦的事情,不要让他在原有的代码海洋中游荡后再修改,那是对维护人员的折磨和摧残。
这个原则我理解就是,现实中加入大拿A搞了一套工具B,小白C想用B发现B有的方法不够用。正常应该去扩展B成B1,而不是修改B。

最后加上一句总结。这些模式原则拿出来当面试题真是害人。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值