# 實戰物件導向：漂亮地處理混亂的程式碼

> 從 OOP 基礎、SOLID 設計原則到實戰重構，建立穩固的程式設計基礎，讓程式碼在 AI 加速開發的時代依然能持續演進。

- 課程頁面: https://progrmatic.com/courses/oop-in-practice
- 價格: 免費
- 狀態: 即將推出，尚未開賣
- 語言: 繁體中文
- 提供者: Progrmatic

## 課程介紹

## 💡 為什麼要重新認識物件導向？

「封裝、繼承、多型、抽象」—— 這些名詞你可能早已耳熟能詳，但當真正面對複雜的業務邏輯、持續變動的需求，以及牽一髮而動全身的程式碼時，光是記住定義，真的足夠嗎？

**物件導向（Object-Oriented Programming, OOP）的價值，不只在於語法與特性，更在於如何透過合理的職責劃分、封裝與抽象，管理程式碼的複雜度。**

尤其在 AI 能夠快速生成大量程式碼的今天，我們或許可以更輕鬆地建立一套系統，但隨著需求不斷增加，如果缺乏良好的設計基礎，程式碼也可能逐漸變得難以理解、修改與維護。**AI 能夠加速開發，但如何讓系統在持續擴充的過程中不失去控制，仍然值得我們深入思考。**

這門課將從 OOP 的基本觀念出發，逐步探索 SOLID 設計原則、控制反轉（IoC）、依賴注入（DI）等常見設計方式，理解它們背後的目的，以及如何運用在實際開發中。

除了觀念講解，我們也會透過實際案例，觀察不同設計選擇帶來的影響，並嘗試將混亂的程式碼逐步重構成更清晰、容易維護與擴充的結構。

我們不追求套用最多的設計模式，也不認為每個問題都有唯一完美的架構。**比起記住什麼是「好的設計」，更希望你能理解為什麼這樣設計，以及什麼情況下值得這麼做。**

## 🎯 這門課你將學到什麼？

- **OOP 核心觀念與實作：** 從封裝、繼承、多型與抽象出發，透過實際案例理解不同特性的用途與適用情境。
- **設計原則與職責劃分：** 探索 SOLID 原則、物件之間的依賴關係，以及如何透過 IoC、DI 等方式改善耦合與擴充彈性。
- **程式碼重構實戰：** 從常見的 Code Smell 與混亂的程式碼出發，練習分析設計問題、調整職責，並逐步改善可讀性與維護性。
- **AI 時代的設計思維：** 理解如何建立清晰的程式架構與設計邊界，讓 AI 輔助開發有更明確的依循方向，並學習評估設計是否適合後續演進。

## 👥 適合對象

- **資訊相關科系學生：** 正在學習物件導向程式設計，希望不只理解課本中的定義，也能透過實際案例掌握觀念與應用方式。
- **程式設計學習者：** 已具備基本程式能力，希望進一步建立物件導向與軟體設計的基礎。
- **軟體開發者：** 經常面對複雜業務邏輯，希望改善程式碼結構，提升可讀性、維護性與擴充彈性。
- **AI 輔助開發使用者：** 希望建立更扎實的軟體設計觀念，讓 AI 不只協助快速實作，也能在明確的架構與設計原則下持續開發。

## 📌 開始之前

建議具備至少一種程式語言的基本能力，例如變數、條件判斷、迴圈與函式等基礎語法，並能夠獨立撰寫簡單的程式。若曾經接觸過類別（Class）與物件，將更容易理解課程內容。

課程中的觀念不限定特定語言，你也可以使用自己熟悉的物件導向語言跟著實作，也會適度地說明相同的設計觀念在不同語言中的表現方式。

與 AI 協作的相關單元，可以使用任何熟悉的 AI 對話工具或 Coding Agent，部分服務可能需要帳號或訂閱方案。

本課程不以完整介紹所有設計模式（Design Patterns）為目標，而是依照實際案例的需要，介紹相關的設計模式與其適用情境。

**好的設計不一定需要更多抽象，而是能夠根據實際需求，做出有理由、容易理解且適合當下的設計選擇。**

## 課程大綱

### 1. 建立基礎 (即將推出)

### 2. 理解設計 (即將推出)

### 3. 實際應用 (即將推出)
