内容
今天学习了面向对象的几种设计思想原则,之前一直是C开发,所以面向过程的思想比较严重。面向对象的四个好处:可维护好、可拓展性好、可复用性好、灵活性好。
收获
1.单一职责原则:封装一个类,职责应该单一,仅有一个以其它变换的原因,所以要做好类的职责分离。
2.开放-封闭原则:软件实体(类、模块、函数等)应可以扩展,但是不可修改,高内聚,低耦合,做到类似于硬件插拔效果
3.依赖倒转原则:高层模块不应该依赖底层模块,两个都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖抽象(这个还得再消化一下)
4.里氏代换原则: 子类型必须能够替换掉它们的父类型
感悟
单一职责原则:
1.单一的类中都应该尽量功能专一,不拖泥带水。
2.每次设计类时考虑插拔效果,尽可能提高代码扩展性,降低代码需要修改的内容。
3.依赖倒转原则:
- 问题:一般面向过程代码都会先封装底层代码,然后上层调用底层代码实现一些功能,但是这样会导致改变软件代码应用场景时,底层代码改变,导致上层的代码也没办法用了。
- 解决方法:
1.将上层代码和底层代码都进行抽象,抽象成一个接口,或者一个类。
2.抽象时遵从里氏代换原则即:子类型必须能够替换掉它们的父类型,软件单位的功能才能不受影响。
3.上层代码和底层代码都依赖于这个类来实现,底层修改,不影响上层,上层修改也不影响底层。
示例代码
1.文章中利用了一个基于WinForm的俄罗斯方块游戏做了面向对象封装思想的例子,改天有时间可以自己动手实现一下。
2.针对于依赖倒转原则,书中使用数据库的例子将来可以试着写一个。