菜菜读设计模式设计模式——设计原则:面向对象
1.面向对象语言(OOP) 面向对象语言最基本的概念就是类与对象,只有拥有这两个概念的语言才是面向对象语言 一般来说面向对象语言拥有四个特征:封装、继承、抽象、多态 但并不是必须具备这四种特性的语言才能成为面向对象语言,比如说 Go 语言,它没有继承的特性,但我们仍认为它是面向对象语言 2.封装、抽象、继承、多态 封装:类通过暴露有限的访问接口,授权外部仅能以类提供的函数来访问内部信息或数据。 实现封装的机制:访问权限控制 (public\protect\default\private) 同一个类 同一个包 不同包的子类 不同包的非子类 public √ √ √ √ protect √ √ √ default(默认空值) √ √ private √ 封装的意义:限制对类中属性的访问,可以避免属性被恶意修改,且防止修改逻辑散落在代码的各处,影响代码的可读性、可维护性;类通过有限的方法暴露必要的操作,能提高类的易用性,让调用者不必了解太多背后的业务细节。 抽象:借助编程语言提供的接口类或抽象类来隐藏方法的具体实现,让调用者只需要关心方法提供哪些功能,并不需要关心功能如何实现 实现抽象机制:interface 接口关键字和 abstract 抽象类关键字 抽象为类提供了具有共性的方法但不提供具体的实现方式。同样的,抽象也可以用函数来实现,调用者用函数的时候,并不需要研究函数内部的实现逻辑