【设计模式】封装、继承、抽象、多态

封装 Encapsulation

封装,即信息隐藏/数据访问保护。在面向对象中,类通过暴露有限的访问接口,让外部仅能通过有限的访问接口来访问内部的数据。

封装的实现往往需要编程语言提供一定的语法机制支持,即访问权限控制机制。

类通过提供有限的方法,可以提高类的易用性、安全性,降低了调用者对类的了解程度。

抽象Abstraction

接口类指的是编程语言提供的接口语法。

抽象并不需要编程语言提供特殊的语法机制就能实现,只需要提供函数这一基本特性就能实现,本质上就是包裹具体的实现逻辑,让调用者在使用的时候不需要了解内部的逻辑,通过对函数的命名、注释或文档的阅读即可了解功能,然后实现它。

抽象是降低问题复杂性的重要手段。

继承 Inheritance

继承是用来表达类之间的is-a的关系,比如说 dog is a animal,animal类具有dog子类。

继承的最大好处就是代码的复用。

多态 Polymorphism

多态需要编程语言提供特殊的语法机制实现:

  • 支持父类对象可以引用子类对象。
  • 支持继承。
  • 支持子类可以重写父类的方法。

鸭子类型duck-typing也可以用于实现多态。

多态的用处就是提高代码的可扩展性。

相关推荐
海特伟业5 小时前
隧道调频广播覆盖-隧道调频广播无线覆盖系统建设要点、难点分析与解决应对
运维·设计模式
sg_knight5 小时前
设计模式实战:享元模式(Flyweight)
python·设计模式·享元模式·flyweight
Swift社区8 小时前
AI 时代,ArkUI 的设计模式会改变吗?
人工智能·设计模式
数据中穿行8 小时前
访问者设计模式全方位深度解析
设计模式
宁雨桥9 小时前
前端设计模式面试题大全
前端·设计模式
数据中穿行10 小时前
迭代器设计模式全方位深度解析
设计模式
数据中穿行10 小时前
观察者设计模式全方位深度解析
设计模式
程序员Terry10 小时前
别老写重复代码了!模版方法模式一次讲透
java·设计模式
数据中穿行10 小时前
建造者模式全方位深度解析
设计模式