JZOOD面向对象设计 - C1 面向对象设计入门

2020-01-13  本文已影响0人  左心Chris

1 SOLID原则

Single responsibility principle 单一责任原则

改的只有一个小的部分,也适合单元测试
解析:单一责任原则指的是一个类只有一项工作,例如一个格式化数据打印的类,类中的成员函数可以有Json格式化输出函数,String格式化输出函数,List格式化输出函数等等。这边的单一责任就是指这个类的唯一工作就是格式化输出数据。

第二种原则叫做O-Open Close Principle(开放封闭原则)

对扩展开放,对修改关闭
解析:抽象类不允许被直接创建对象,其他类的特性依旧存在。抽象类的实现应在继承该类的子类中去具体实现。抽象类中只负责定义该抽象方法。由于abstract 的方法需要在继承后的子类中实现,因此不可以 与final , private , static 共存。

L – Liskov substitution principle(里氏替换原则)和I – Interface segregation principle(接口分离原则)

机器人不能继承人的类
类不能继承不能实现的接口
解析1:SingleResponsibility 是为了解决后续维护中class过于臃肿的原则,InterfaceSegragation 是为了解决面向外部调用者让其他开发人员更容易明白不同接口的功能区别而总结的原则。
解析2:假设现在我们有一个interface提供给用户,但是里面有太多用户不需要的功能,显得我们的interface过于臃肿;那么这时候我们就要把这个大的接口根据功能再次细分,然后提供给不同的用户。这就叫接口分离。
解析3:当父类的某些方法不确定时,可以用abstract关键字来修饰该方法[抽象方法],用abstract来修饰该类[抽象类],一个类中一旦有抽象方法,必须定义成抽象类。子类在继承父类的时候一定要实现父类中的抽象方法,并且会自动继承除构造函数以外的Public和Protect方法,子类可以重写这些方法。此外,子类也可以自定义自身的方法。

最后一个原则是D–Dependency inversion principle(依赖反转原则)

抽象不应该依赖于具体实现,具体实现应该依赖于抽象,因为如果如果具体实现没了,你依赖它就会报错

2 例题和5C解题法

上一篇 下一篇

猜你喜欢

热点阅读