TracerLee / tracerlee.github.io

Personal blog written by Tracer
4 stars 0 forks source link

⭐ JavaScript设计模式 #25

Open TracerLee opened 6 years ago

TracerLee commented 6 years ago

记录设计模式相关。

TracerLee commented 6 years ago

多态

“多 态” 一 词 源 于 希 腊 文 polymorphism, 拆 开 来 看 是 poly( 复 数) + morph( 形 态) + ism, 从 字 面 上 我 们 可 以 理 解 为 复 数 形 态。 多 态 的 实 际 含 义 是: 同 一 操 作 作 用 于 不 同 的 对 象 上 面, 可 以 产 生不 同 的 解 释 和 不 同 的 执 行 结 果。 换 句 话 说, 给 不 同 的 对 象 发 送 同 一 个 消 息 的 时 候, 这 些 对 象 会 根 据 这 个 消 息 分 别 给 出 不 同 的 反 馈。

从 字 面 上 来 理 解 多 态 不 太 容 易, 下 面 我 们 来 举 例 说 明 一 下。 主 人 家 里 养 了 两 只 动 物, 分 别 是 一 只 鸭 和 一 只 鸡, 当 主 人 向 它 们 发 出“ 叫” 的 命 令 时, 鸭 会“ 嘎 嘎 嘎” 地 叫, 而 鸡 会“ 咯 咯 咯” 地 叫。 这 两 只 动 物 都 会 以 自 己 的 方 式 来 发 出 叫 声。 它 们 同 样“ 都 是 动 物, 并 且 可 以 发 出 叫 声”, 但 根 据 主 人 的 指 令, 它 们 会 各 自 发 出 不 同 的 叫 声。 其 实, 其 中 就 蕴 含 了 多 态 的 思 想。

曾探. JavaScript设计模式与开发实践