今天面试的时候问我面向对象设计中solid是什么,我当时就懵逼啦!

面试后总结了一下,其实很好理解

S:单一职责原则(Single Responsibility Principle, SRP)

意思就是一个类他应该只有他一个的作用,比如一个user对象可以信息管理和信息持久化这就不对,肯定要将这俩功能分给两个类去实现。这样做的好处就是增加代码的复用性,减少类的复杂度,能回答出这些就可以了

O:开放 - 封闭原则(Open-Closed Principle, OCP)

就是一个类的功能不够的时候应该让他去继承或者多实现接口去做功能增强而不是去修改本身代码去增强。这样的好处就是减少对代码的修改,减少引入新bug的风险,增加系统的稳定性

L:里氏替换原则(Liskov Substitution Principle, LSP)

一个子类去继承了一个父类,子类可以替换父类的对象,意思是在任何场景下父类可以出现的地方,子类也一定可以出现

I:接口隔离原则(Interface Segregation Principle, ISP)

一个客户端不应该去被迫依赖他不需要的接口,比如有个A接口里面有eat,sleep,work方法,一个human类和一个机器人类实现了这个A接口,human类可能没事,但是机器人类用不到sleep和eat方法,这样子就是不对的,应该将接口设计为Ieat接口里面有eat方法,Isleep接口里面有sleep方法,Iwork接口有work方法,那么将human实现Ieat,Isleep,Iwork接口,机器人只需要实现Iwork接口就可以了

5. D:依赖倒置原则(Dependency Inversion Principle, DIP)

指的就是高层模块不能依赖底层模块,依赖时候不应该去依赖实现类,而是实现接口或者抽象,后续修改的时候不影响你高层代码

全部评论

相关推荐

牛客28501546...:后面三个勾勾是自己手绘的吗
腾讯开奖371人在聊
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务