#3 – 什麼是「實例化」(Instantiate)

我一直覺得實例化這個詞在coding的世界很難理解,
code本身就是一個實際存在的東西 (就已經看到它寫在那了)


又不是我在腦海構想一件事,在現實世界沒有實體,
(例如我在腦海想像了一隻狗狗,然後我真的去拿水彩筆畫出來 >> OK這是實例化)

Code到底有什麼好實例化…
(我的接受極限大概是物件導向教學常說的class是藍圖的概念,
但也是有點勉強,不是每個範例都覺得能接受)(毛真多?)

在線上課程看到EF Core介紹有一句話:Instantiates a database connection
真的覺得要瘋掉,
連資料庫不就一樣是一些“已經實際存在“的code,

到底在Instantiates什麼?


Instantiate 的意思

「Instantiate」在程式語言中,通常指的是創建某個類別(class)的實例(instance)

  • 類別(Class) 是一種抽象的藍圖,定義了對象的屬性和行為。
  • 實例(Instance) 是基於這個藍圖創建的具體對象

為什麼說是「實例化」

  1. 抽象到具體的轉換
    雖然程式碼是具體存在的,但類別(例如 DatabaseConnection)本身並不是一個具體的「物件」,而是定義了一個可以創建的物件模型。
    當你使用 new 關鍵字(例如 new DatabaseConnection())時,程式會根據類別的定義創建一個具體的記憶體物件,這個過程就稱為實例化。 👉 這類比你提到的「畫一隻狗」的概念:
  • 類別 = 狗的設計圖
  • 實例化 = 根據設計圖「畫」出一隻狗
  • 當程式運行時,物件佔用記憶體並具體執行動作,這時候才算是具體的存在

當程式運行時,
物件佔用記憶體並具體執行動作,
這時候才算是具體的存在

這句話終於解答我的疑惑,code的世界,實例化就是指記憶體!

Instantiates 和 database connection 的關係

Instantiates a database connection

  • 類別(例如 DatabaseConnection)是一種抽象的定義,描述了如何和資料庫連線,但在程式執行之前它並沒有「具體的行為」。
  • 當程式使用 new DatabaseConnection() 時,會根據這個類別的定義:
  1. 在記憶體中分配空間。
  2. 初始化相關的屬性和行為。
  3. 建立和資料庫的實際連線。
  • 這樣的過程就是實例化

因此,「database connection 本來就是一些 code」這種想法,其實只是看到了類別的定義。只有在執行程式並「實例化」這個類別後,才真正和資料庫建立具體的互動。


Instantiate 的意義在 C# 中的應用

  1. 類別和物件的關係
    在 C# 中,DatabaseConnection 是類別,而透過實例化後生成的對象才是真正可用的物件:
   DatabaseConnection connection = new DatabaseConnection();

這個程式碼:

  • 類別 DatabaseConnection 是抽象的設計圖。
  • 變數 connection 是具體的實例,可以被程式操作。
  1. 實例化的重要性
  • 如果你沒有實例化,那麼類別本身無法被使用。類似於你有一個建築圖紙,但沒有建築物可住。
  • Instantiates 這個詞就用來描述「把抽象的圖紙轉換成具體存在」的過程。

你的疑惑解答

「code 有什麼好實例化,本來就已經是實際的」

  1. 類別是靜態的,物件是動態的
  • 類別的程式碼是靜態存在於你的專案中,它只是描述一種可能的行為。
  • 當你實例化時,程式才會在記憶體中分配資源、初始化屬性,讓物件「活」起來。
  1. 程式碼本身不能代表執行中的行為
    程式碼本身是靜態的,而程式在執行後,程式碼定義的結構和行為才會成為現實。這就像你有一個狗的設計圖,只有執行實例化過程,狗才會在「程式世界」中誕生。

替代的理解方式

如果覺得「實例化」這個詞很抽象,可以這樣理解:

  • 「Instantiates a database connection」其實是在運行時生成具體的資料庫連線對象
  • 類別 = 定義連線的「工具」。
  • 實例化 = 使用這個工具「打開」一個具體的資料庫連線。

這樣的翻譯和概念應該會更容易接受。


小結

  • 「Instantiate」= 創建一個具體的物件(物件化)
  • 在程式碼裡,類別是一種抽象,實例化是將抽象的類別轉換成具體的執行對象的過程。
  • 與資料庫連線相關時,實例化的目的是讓程式從類別定義生成具體的記憶體對象,並執行連線行為。

「物質的核心,
是光與暗的遊戲,
存在被賦予形式,
形式又回歸空無。」

——楊牧,《解構再造》

關於痛苦

2025 年 4 月 13 日

「擁有許多好條件的…