抽象的重要

2021-08-21 13:01:35 字數 1014 閱讀 5894

抽象在程式設計中是有用的,而且會用的人知道它有大用。而許多初學者(包括我)一開始覺得它並無實際用途(指抽象類)。

後來,我知道了設計模式這個東西才恍然大悟又驚嘆此智慧型高深,設計模式一開始並不是程式界的產品,它是建築界的大師提出的。

抽象是什麼:抽象是對乙個集合(種類)的物件特徵的定義,與具體相對。
舉個例子吧:在世界上你可以找到很多動物,但你卻找不到動物這個東西。

這關係到抽象的兩個特性:1,概括性  2,無例項。上面的例子中每乙個動物(比如貓)就是乙個物件,而動物這個名詞就是抽象。動物概括了所有由動物細胞組成的生命體的集合。

那麼,你會覺得動物這個詞沒用嗎?又或者不要它的概括性每次要說到動物時就說一大段定義;又或者全部例項為抽象把所有動物都改名叫動物?

依此看來抽象是重要的,當然上面亂七八糟的似乎和程式沒有關係。那麼在程式中如何應用抽象呢?

乙個好的程式設計師習慣對抽象進行程式設計,因為這符合「知道最少」原則和「替換」原則。
關於「知道最少」這又要說到程式的耦合性了。在程式裡若類與類之間聯絡過於緊密我們稱之為強耦合,就是「知道太多」,模組(類)之間互相知道的越多耦合就越強,耦合越強越不利於維護(這又是一大門學問),把類做得讓別人(其它物件)知道最少這才是優秀的**(黑盒程式設計)。

關於「替換」這又要說到繼承黎克特制代換的知識了。應用場景:專案經理對專案的要求是改了又改,就算是高智商的程式設計師也是被此煩得不行,雖然說領了工資就要工作,但是重複的事卻不應重複去做(煩)。

「黎克特制代換」中規定子類可以完全替代父類去幹事情,而對其它**完全不需要修改。有人說這和抽象有什麼關係,在程式設計裡抽象類總是父類。習慣對抽象(介面)程式設計的程式設計師是好的程式設計師,在呼叫抽象或介面時,實現抽象(介面)的類可以被其它同樣實現替換,而不必知道具體是什麼東西。

python 物件導向(重要!重要!重要!)

物件導向程式設計 英語 object oriented programming,縮寫 oop 是一種程式設計理念,這種程式設計理念更符合我們人的邏輯思維。使用物件導向程式設計可以提高我們的開發速度和 的重用率。物件導向的開發非常適合大型程式開發,開發速度和後期維護都比過程化開發要好很多。面向過程和物...

重要的日子

第一次見面 2009 6 13 第一次表白 2009 8 26 生日 農曆九月十四號早上。表白100天 2009 12 4 表白1年 2010 8 26 表白1000天 2012 5 22 三圍 88,78,92 喜歡做的事 1.各種運動或新奇的事情,有很大的吸引力。不喜歡做的事 1.特別不喜歡遲到...

重要的演算法

下面是一些比較重要的演算法,原文羅列了32個,但我覺得有很多是數論裡的或是比較生僻的,和計算機的不相干,所以沒有選取。下面的這些,有的我們經常在用,有的基本不用。有的很常見,有的很偏。不過了解一下也是好事。也歡迎你留下你覺得有意義的演算法。注 本篇文章並非翻譯,其中的演算法描述大部份摘自wikipe...