从最开始接触的Python到现在的C#,这些都是面向对象的编程语言,那么什么是面向对象编程呢?在最开始学习Python的时候,一直都在学习基本的数据结构,依然是面向过程编程,很难对程序语言有较深的理解,在学习C#的时候,我渐渐开始接触类、接口等概念,然而真正开始理解并应用这些概念可花费了不少时间,随后我也渐渐发现,OOP技术的强大之处与魅力所在。
在此总结一下面向对象编程的好处与部分原则。
面向对象编程(Object Oriented Programming)的好处:可维护、可拓展、可复用和灵活性好。
面向对象编程的原则一——单一职责原则(Single Responsibility Principle) :一个类尽量只执行一个功能,分离类的不同功能让它们彼此间不易受干扰。(要养成单一职责原则的编码习惯,在观察大佬重构代码的时候,很大部分工作就是在分离类,每个类只做对应的一件事)
面向对象编程的原则二——开放封闭原则(Open Close Principle):对扩展开放(Open for extension),对更改封闭(Closed for modification),在编程时,设计人员要提前猜测最有可能发生变化的地方,并设计构造抽象来隔离那些变化,在面对需求时,就可以做到增加新代码而不是更改现有代码。
面向对象编程的原则三——依赖倒置原则(Dependence Inversion Principle) :抽象不应该依赖细节,细节应该依赖于抽象,这句话有些绕口,换句话说,就是要针对接口编程,而不要针对实现编程,程序设计各大功能模块都应该针对接口设计,而不是针对具体的实现。
面向对象编程的原则四——里氏替换原则(Liskov Substitution Principle):子类必须能够替代他们的父类。只有当子类可以替代父类,软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。正是由于子类型的可替代性才使得使用父类类型的模块在无需修改的情况下就可以拓展。