前言

會寫這篇是因為在工作了幾年之後,發現很多人都不知道什麼是OOP,也不知道OOP的好處。常常會看到重複的程式碼,或是程式碼的可讀性很差。

基於取之於社群,用之於社群的精神,想寫一些關於OOP的文章 希望能夠幫助到一些人,也在寫文章的時候釐清一下自己的想法。

什麼是OOP ?

OOP是Object Oriented Programming的縮寫,中文翻譯為物件導向程式設計,是一種程式設計的方法論,這種方法論的核心是將程式中的資料與操作資料的程式碼封裝成一個個的物件,並且透過物件之間的互動來完成程式的功能。

物件導向基本原則

物件導向的概念有幾個,分別是:

  1. 封裝: 將資料與操作資料的程式碼隱藏在物件內部,只提供介面給外部使用
  2. 繼承: 將程式碼中相同的部分抽到父物件,讓不同的子物件可以共用,減少重複的程式碼
  3. 多型: 透過相同的介面來達成不同的實作

SOLID原則是物件導向的五個基本原則,分別是:

  1. Single Responsibility Principle: 一個物件只做一件事
  2. Open/Closed Principle: 一個物件應該是可以擴充的,但應該避免修改
  3. Liskov Substitution Principle: 子物件可以替換父物件
  4. Interface Segregation Principle: 物件之間的互動應該相依於介面
  5. Dependency Inversion Principle: 高階模組不應該依賴低階模組,兩者都應該依賴抽象

物件導向的目的

Divide and Conquer. - Caesar

這些原則其實最終都指向一個基本想法:「可維護」

透過這些原則,可以減少重複的程式碼、增加可讀性、並且更容易找到要修改的地方。