之前在學習C#聽到「抽象」類別 (abstract),
毛多的我也對於這件事感到很怪…「抽象」的定義:
在中文中,抽象是一種對事物本質特徵的提煉,是人類思維的一種方式,將具體、複雜的事物轉化為簡化的概念或框架。
抽象的存在意味著我們可以透過忽略細節來聚焦於核心本質,並以概念化的形式進行理解與表達。「抽象」的範例:
1. 自由 自由是一種抽象概念,代表了個體能夠不受約束地選擇、行動或思考的狀態,無法直接觸摸或量化。 2. 幸福 幸福是一種主觀的感受,涉及滿足、喜悅或生活的意義,但因個人而異,難以具體定義。 3. 智慧 智慧是一種能夠洞察事物本質、作出深刻判斷的能力,無法被具體呈現或完全測量。 4. 信任 信任是對他人或系統的依賴與信賴,表現為行為與態度,但無法以實體形式存在。 5. 和平 和平是一種沒有衝突與紛爭的狀態,是社會與人類關係中的理想目標,卻無法具象化。 6. 勇氣 勇氣是面對困難、恐懼或挑戰時,內心產生的一種力量,無法用物質形式表示。 7. 愛 當我們談論「愛」時,並非指向某一具體的事件或行為,而是抽象地總結了一種情感和價值的集合體。 8. 希望 希望是對未來的積極期待,常存在於人們的信念或願景中,但無法具體呈現或量化。9. 程式碼
?????????????
相信大家可以理解我覺得怪的點了……
我在看EF Core線上課程時,
看到其中一句:”Abstraction of the database structure in code“
再度爆氣(脾氣到底奪差?)
資料庫是一個相對已經非常具體的東西,
到底為什麼要抽象化?
變成程式還是很不抽象啊(就看得到!!比感覺到還不抽象1000萬倍)
So here comes the answers and more questions:
1. The answers:
2. Details and more Questions
在這個上下文中,「Abstraction」的翻譯可以根據具體情境調整,但在EF Core中,「Abstraction of the database structure in code」的意思更接近「對資料庫結構在程式碼中的抽象化表達」。
- 翻譯為「抽象」的情境:
- Abstraction 是指將複雜的細節隱藏起來,只呈現出關鍵的部分。
- 在 Database Context 的情境下,EF Core 的 DbContext 就是對資料庫結構的抽象化,它隱藏了 SQL 等低層操作,讓你可以透過 C# 程式碼來操作資料庫。
- 這種「抽象」的做法可以使開發者專注於應用程式邏輯,而不需要直接操作資料庫細節。
- 與 C# 的 Abstract 的比較:
- 雖然 EF Core 的「Abstraction」和 C# 的
abstract
關鍵字在概念上有相似之處,但並非完全一樣。 - C# 的
abstract
強調的是類別和方法的不完整性(Incomplete Implementation),需要透過繼承來實現具體行為。 - 而 EF Core 的「Abstraction」更多是強調對底層細節的隱藏和簡化,以便提供更高層次的介面操作。
- 為什麼「摘要」不適用?:
- 「摘要」的翻譯更偏向提取重要資訊的總結,像是文章摘要(Summary)。而「抽象」描述的是對某個東西的高層次建模或概念化。
- 在程式設計中,抽象是專業術語,意指從具體細節中提煉出通用的結構或模型,因此更為適合。
3. 總結:
EF Core 中的 Abstraction of the database structure in code 最佳翻譯是:
資料庫結構在程式碼中的抽象化。
它不等同於摘要,也和 C# 的 abstract
關鍵字有相關但不完全相同的概念。
如果覺得「抽象」太難理解,可以試著理解為「資料庫結構的高層次表達」。
「思想在虛空裡劃過,
成為線,成為面,
最終消散,
抽象與具象,誰歸還誰的名字?」
——楊牧,《思想的邊界》