最近看了一本书叫做《软件架构与模式》,十分喜欢,顺便记录下看了之后我对面向对象的一些不成熟的小想法
why面相对象
面向对象为了解决软件开发过程中的的解耦、可扩展、可重用的问题而诞生的。
面向对象的原则
抽象
继承
封装
多态
Why抽象
为了实现解耦,设计原则告诉我们需要面向抽象编程而不是面向具体编程,面向接口编程而不是面向实现编程。如果高层的模块对底层的模块有依赖,那么,需要对底成模块进行抽象,让高层模块依赖或者聚集底成模块的抽象接口。此外让具体的底成模块实现这个接口,这样做到了解耦,其实这就是依赖倒置原则。
Why继承、多态
面向对象原则中的多态的基础就是继承,使用父类的引用管理不同的子类,调用相同的方法而实现不同的功能,如此实现了软件的可扩展,这就是多态的魅力,而基础正是继承
Why封装
我实现多态的继承体系中,高层模块因为并不了解底层模块的具体实现,在具体的底成模块中,针对不同的实现,底成模块拥有自己的私有方法,私有属性,来完成对应的任务,这里面所体现的就是封装。