怎說明抽象? 怎說明Abstraction/Abstract? === ###### tags: `Design Pattern` 各位幫忙解釋或是給出參考, 對**Abstract**或**Abstraction**等名詞的解釋? 主要是幫忙說明 **抽象**, 大家怎麼去理解或您會怎說明給大家. 自由編輯, 但要登入HackMD 格式如下: ``` Abstract是ooxx [您的大名或暱稱] 或 [參考](LinkUrl) [您的大名或暱稱] ``` [Abstraction (noun)](https://www.oxfordlearnersdictionaries.com/definition/english/abstraction?q=abstraction) --- ``` a general idea not based on any particular real person, thing or situation; the quality of being abstract ```  [DIP](https://hackmd.io/fiYx0urIShSzyAfvYekfLw) ``` Entities must depend on abstractions not on concretions. It states that the high level module must not depend on the low level module, but they should depend on abstractions. ``` [Abstrction](https://en.wikipedia.org/wiki/Abstraction_(computer_science)) [Abstraction Principle](https://en.wikipedia.org/wiki/Abstraction_principle_(computer_programming)) [抽象层次原理](https://baike.baidu.com/item/%E6%8A%BD%E8%B1%A1%E5%B1%82%E6%AC%A1%E5%8E%9F%E7%90%86) [建模的抽象层次](http://reader.epubee.com/books/mobile/b3/b355a7369c0bb824ff7b8bd2e6dca1b7/text00032.html) [反直觉程序设计:抽象层解耦合](https://zhuanlan.zhihu.com/p/19565065) [好书一起读(151):抽象和分层](https://zhuanlan.zhihu.com/p/24887816) [谈谈到底什么是抽象,以及软件设计的抽象原则](https://zhuanlan.zhihu.com/p/32563505) [Abstract (adj/noun/verb)](https://www.thefreedictionary.com/abstract) --- [does abstract class in C++ mean abstraction?](https://stackoverflow.com/questions/35007521/does-abstract-class-in-c-mean-abstraction) [Abstraction and abstract in java](https://stackoverflow.com/questions/5443177/abstraction-and-abstract-in-java) [教育部國語字典](http://dict.revised.moe.edu.tw/cgi-bin/cbdic/gsweb.cgi?ccd=szSf0S&o=e0&sec=sec1&op=v&view=0-1) ``` 晚上要吃飯,所以要吃炒飯?燴飯?雞肉飯?滷肉飯?排骨飯? 還是我只能吃"飯"? 不能吃麵 ? 吃飯只是一個概念,具體要吃什麼我不說死,所以你的選擇就更多,轉換成Code 你就相對有彈性可以抽換。 錯誤的示範:我今天晚上要吃樓下的雞腿飯,這樣就不抽象,因為你已經說死是雞腿飯了。 [Mickey] ``` --- ``` 我愛XX ===> 抽象 只知道 愛 但不知道 具體內容 我愛XX的氣質跟做事風格 =====> 具體不抽象 [G無名氏?] Open Container initiactive =>抽象 docker實作 oci [Gson] ``` --- ``` 可以考慮從抽象代數的抽象下手,提出性質,結構概念,規則化的理解方向。[Yung-Chuan Chen] ``` --- ``` 登入 => 抽象 身分驗證與授權 => 細節 身分驗證與授權 => 抽象 FB 第三方身分驗證與授權 => 細節 我覺得抽象與細節是比較來的 這個比較,也是抽象化過程的一環 [Miles哥] ``` --- ``` 商業邏輯依賴資料庫=>細節 商業邏輯依賴需求=>抽像 抽象=>沒有實作,沒有程式碼 HTTP protocol是抽象,web server是實作 法律條文是抽象,懂法律的人是實作(咦 人民是實作法律的人 [小章哥] ``` --- ``` Abstract 是指將背後的實作與呼叫的介面分開,且不關注背後真正的實作是誰,以降低耦合性 [jw910731] ``` --- ``` 呃然後我一直在國外啦所以不知道台灣教科書是怎麼翻譯abstraction的,但「抽象」這個字面翻譯還滿詞不達意的 簡單來說,如果你拿筆叫我畫一個人,這是我畫出來的人:我畫了兩隻手兩隻腳配上一個大頭,因為在我眼中,這個火柴人就足以表達「人」的概念了。 同樣的,每個人「畫人」的時候會有不同的取捨,你來畫,可能會幫他加頭髮、加上臉或其他特徵,所以每個人畫出來的人都不一樣,而選擇要表達哪一部分就是一種abstraction。 **abstraction就是對資料進行取捨,選擇要保留或刪除哪些資訊** 近一步來講,如果今天叫你畫五個人,三男兩女。既然我指定了性別這個性徵,你的火柴人就得加上其他細節來分男女,從code的角度 你的code得提取出其他資訊來分辨男女。 所以abstract就是提取資訊、對資訊進行取捨的過程。 [Taian程式讀書會-Eric Peng] ``` --- ``` abstract void發大財的方法(){//自己覆寫好嗎;} [Taian程式讀書會-詹杭勳] ``` --- ``` 抽象是不是把共同的東西提取出來作為抽象方法? 還是說具有特別意義才要提取出來作為抽象方法? [Taian程式讀書會-Will Liu] ``` --- ``` 去粗取精以化繁為簡,從表到內以異中求同。抽象不過是種減法和除法的藝術。 軟體無形 編程有道 道為抽象 其實抽象是種概念 是種意念 是無法具體化的 正如佛曰不可說 [Taian程式讀書會-Adam Chen] ``` --- ``` 物件導向程式設計,不是類別越多越好,類別的劃分是為了封裝,分類的基礎是抽象,具有相 同屬性和功能之物件的抽象集合才是類別。 以抽象來隔離,可能會發生同類變化。 ``` ##### [IT界的影武者](https://dotblogs.com.tw/bda605/2019/01/27/191459) --- ``` 硬碟 => 檔案系統 [Taian程式讀書會-黃鈺盛] ``` --- ``` 叫別人完成的工作,上面記得加Todo註解,然後說誰誰誰很急 [Taian程式讀書會-牛伯雨] ``` --- ``` 萃取 (Abstract common behaviors) [Taian程式讀書會-水球潘] ``` --- ``` 請不要用化繁為簡來詮釋抽象 因為他沒有這麼做 抽象顧名思義為'抽'選取其'象'特徵 所以具有共同的抽象為具有共同的特徵 所以程式語言可以創造model的特徵 並且宣告特徵 以及為具有該特徵的物件產生集合與序列 但這些不是化繁為簡 就像是人類具有靈長類特徵但不代表歸類於此的人類就被簡化成黑猩猩 因為我們在定義或描述"抽象"是什麼 定義一件事情本身就是一種抽象的應用 而代數學也是一種抽象的應用 描述更是一種基於抽象的行為 甚至包括你才貼的那篇金融 錢才是真正一個被實例化的抽象產物 XD [Taian程式讀書會-凯大] ``` --- ##### [為什麼 “abstraction”不應該譯為“抽象化”](https://medium.com/@wdyluis/%E7%94%B1-%E7%82%BA%E4%BB%80%E9%BA%BC-abstraction-%E4%B8%8D%E6%87%89%E8%A9%B2%E8%AD%AF%E7%82%BA-%E6%8A%BD%E8%B1%A1%E5%8C%96-%E8%AB%87%E6%AD%A3%E5%90%8D-a2dfb7159c47) --- ``` 抽象,特徵的歸納 [Taian程式讀書會-陳國仁] ``` --- ``` 基本上抽象從我們學數學開始的頭就是了,從數數用手指跟糖果改用數字1,2,3表示,接下來沒有的東西用0來表示,這就是一系列的抽象化過程,更不用說後面的數學了,每一個關卡都是更進階的抽象,abstract在數學幾乎等同 generalization ,我個人覺得程式也是這樣在運用抽象這詞的啦 [Taian程式讀書會-Ian Wilson Chen] ``` ---
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up