solid 学习路线图

阅读时长 4 分钟读完

SOLID 是面向对象编程的五个基本原则,它们可以帮助开发人员设计出可维护、可扩展的代码。以下是 SOLID 学习的详细路线图:

单一职责原则 (Single Responsibility Principle)

单一职责原则指的是一个类或者模块应该只有一个职责,这样可以使得代码更加可读、可维护、易于扩展。

例如,我们有一个 User 类,负责用户的登陆和注册,但是这个类同时还包含了发送邮件的逻辑。如果我们想要修改发送邮件的方式,那么就需要修改 User 类的代码,这显然不符合单一职责原则。

-- -------------------- ---- -------
----- ---- -
  --------------- --------- -
    -- ----
  -

  ------------------ --------- -
    -- ----
  -

  ------------------ -------- --- -
    -- ------
  -
-

正确的做法是将发送邮件的逻辑拆分到一个独立的类中,这样 User 类就只负责用户的登陆和注册了。

-- -------------------- ---- -------
----- ------------ -
  ------------------ -------- --- -
    -- ------
  -
-

----- ---- -
  ------------------------- -
    ----------------- - -------------
  -

  --------------- --------- -
    -- ----
  -

  ------------------ --------- -
    -- ----
  -

  ------------------ -------- --- -
    ------------------------------------ -------- ----
  -
-

开闭原则 (Open/Closed Principle)

开闭原则指的是软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。也就是说,我们应该通过扩展来增加功能,而不是通过修改已有的代码来实现。

例如,我们有一个 Shape 类,它有一个 draw 方法用于绘制图形。现在,我们想要新增一个矩形类型的图形,应该怎么做呢?

一种错误的实现方式是直接修改 Shape 类的 draw 方法,添加矩形的绘制逻辑。这样做的问题是如果以后再增加其他类型的图形,我们又需要修改 Shape 类的代码,这显然是不可行的。

-- -------------------- ---- -------
----- ----- -
  ------ -
    -- ------
  -
-

-- ------------ ----- -- ---- --
----- ----- -
  ------ -
    -- ---------- --- --------- -
      -- ------
    - ---- -- ---------- --- --------- -
      -- -------
    - ---- -- ---------- --- ------------ -
      -- ------
    -
  -
-

正确的做法是通过继承来实现,新增一个 Rectangle 类并继承自 Shape 类,然后在 Rectangle 中实现矩形的绘制逻辑。

-- -------------------- ---- -------
----- ----- -
  ------ -
    -- ------
  -
-

----- --------- ------- ----- -
  ------ -
    -- ------
  -
-

这样做的好处是,我们可以随时新增其他类型的图形,而不需要修改已有的代码。

里氏替换原则 (Liskov Substitution Principle)

里氏替换原则指的是子类型必须能够替换掉它们的父类型。也就是说,在任何使用父类型的地方,都应该能够使用其子类型,而且不会影响程序的正确性。

例如,我们有一个 Vehicle 类,它有一个

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/53501

纠错
反馈