關於代碼的抽象層級
在閱讀《代碼整潔之道》時,有一個名詞是抽象層級,那究竟什麽是抽象等級呢?
查閱資料後,我的理解基本上是這樣的:
我們由上而下來說一個現實存在的:人。
我們在這裏不討論人為什麽叫做人這種抽象問題,在下邊的舉例中,人是最高的抽象層次
人
{
四肢
{
指甲{}
關節{}
.......
}
身體
{
心{}
肺{}
.......
}
頭部
{
眼鼻耳{}
........
}
}
在這個例子中,身體是最高的抽象層級,下一層為四肢,身體,頭部,再下一層為指甲,關節,心,肺,眼鼻耳等等
把這個例子映射到代碼中,將一段代碼相對照,查看一下你的代碼有沒有將不同的抽象層級混在一起,
如果有,就將其摘出 ,放在同一層級,這樣,代碼的整潔度會大大的提升,整個代碼的邏輯也會更加清晰
如果大家覺得這個例子不能夠理解,那麽大家可以看一下這兩個鏈接內的內容
https://zhidao.baidu.com/question/499578241.html
http://book.51cto.com/art/201206/342093.htm
關於代碼的抽象層級
相關推薦
編程之代碼抽象三原則
編程經驗 信息 學習 接口 bsp 直接 質量 引用 憤怒 編程之代碼抽象三原則,這三原則仔細推敲,與23種設計模式不無關系。 23種設計模式,在此我不做詳細介紹和說明,因為我目前也正在學習,在學習設計模式的時候,有一點非常重要, 引用王陽明先生的理念“知行合一”,將理論同
關於代碼的抽象層級
什麽 整潔之道 層級 層次 OS 名詞 com ida clas 在閱讀《代碼整潔之道》時,有一個名詞是抽象層級,那究竟什麽是抽象等級呢? 查閱資料後,我的理解基本上是這樣的: 我們由上而下來說一個現實存在的:人。 我們在這裏不討論人為什麽叫做人這種抽象問題,在下邊的舉例中
【代碼學習】PHP面向對象之抽象類與接口
部分 truct 中國人 protect nds 16px 使用 function col 一、什麽是抽象方法? 一個方法如果沒有方法體(不使用"{}",直接使用分號結束的方法,才是沒有方法體的方法),則這個方法就是抽象方法 1、聲明一個方法,不使用{},而直接分號結束
【轉】編寫高質量代碼改善C#程序的157個建議——建議90:不要為抽象類提供公開的構造方法
改善 公開 構造方法 編譯 只需要 高質量代碼 pub 默認 {} 建議90:不要為抽象類提供公開的構造方法 首先,抽象類可以有構造方法。即使沒有為抽象類指定構造方法,編譯器也會為我們生成一個默認的protected的構造方法。下面是一個標準的最簡單的抽象類:
【轉】編寫高質量代碼改善C#程序的157個建議——建議102:區分接口和抽象類的應用場合
支持 完成 不同 作用 設計 來看 適合 c# 職責 建議102:區分接口和抽象類的應用場合 接口和抽象類有一些顯而易見的區別: 接口支持多繼承,抽象類則不能。 接口可以包含方法、屬性、索引器、事件的簽名,但不能有實現,抽象類則可以。 接口在增加新方法後,所有的繼承
【轉】編寫高質量代碼改善C#程序的157個建議——建議143:方法抽象級別應在同一層次
init lin 組織結構 blog 直接 ali public str 運行 建議143:方法抽象級別應在同一層次 看下面代碼: class SampleClass { public void Init() {
java面向對象,final,super ,抽象類,重寫,代碼塊,static,this,構造方法,堆棧
細節 null 建議 error 數列 tor 需求 splay etag 在jvm內存中主要分布有以下三個區域: 棧:存放基礎數據和自定義對象的引用 堆:主要存儲創建的對象,即new出來的對象 方法區:加載存放class文件(字節碼文件) 什麽
.net core學習筆記《新一代的配置系統Configuration在支持多數據源,熱更新,層級化方面代碼快速實踐》
配置文件 stat variables ack lec 復制 image onf sof 在我們之前.Net Framework的項目中,配置文件是WebConfig或AppcConfig文件,而當我們想要添加我們自定義的節點時,還需要在這個文件中的section中定義我們
Yii2中後臺用前臺的代碼設置驗證碼顯示不出來?
font 前後臺 cnblogs 模板 alt 技術分享 size 不出 image 我說的是直接修改advanced模板。細心人會發現模板裏在contact裏有,登錄也想要就仿照contact中的做法。前臺好了,後臺登錄也要驗證碼,就把前臺代碼拿過來,可惜前後臺的Site
第4次作業類測試代碼+105032014045+楊銘河
rfi color too efi rgs text blog ace val 1、類圖: 2、代碼: (1)計算類: class Arithmetic{ //邏輯計算類 private int headphoneNum; private int
第4次作業類測試代碼+019+李悅洲
stack app static jlabel field ted temp 函數 private 類圖: 代碼: package swingDesign; import java.awt.EventQueue; import javax.swing.JFra
第四次作業測試代碼+018+李濱
double adapt scan 類圖 handle 作業 () || != 一、類圖 二、代碼 import java.util.Scanner; public class homeWork01 { public static String triangle(S
WF4.0以上使用代碼完整自定義動態生成執行工作流Xaml文件
load 控制 brush 類型 rpv 返回 cap 並且 sco 給大家分享一下,如何完全使用代碼自定義的創建生成工作流文件(用代碼創建Xaml文件),並且動態加載運行所生成的工作流。 工作流生成後 在Xaml文件裏的主要節點如下: 輸入輸出參數 <x
《代碼閱讀》讀書筆記(一)
需求 的人 一行 編碼 重要 流動 使用 分析 缺少 《代碼閱讀》讀書筆記(一) 《代碼閱讀》(《Code Reading The Open Source Perspective》)Diomidis Spinellis 著 ---------------------
mysql錯誤代碼對照表較完整 mysql_errno()
文件操作 屬性表 域控制器 找不到 無法執行 客戶端 加速 故障 傳遞 From:http://www.cnblogs.com/joeblackzqq/p/4575938.html mysql錯誤代碼對照表較完整 0101 屬於其他進程的專用標誌。 0102 標誌已經設置,
身份證歸屬地查詢免費api接口代碼
stat print instance private auth content dom c99 first 描寫敘述 :依據身份證編號 查詢歸屬地信息。 身份證實體類: package org.wx.xhelper.model; /** * 身份證實體類 * @
php代碼效率小常識
pac 100% echo 雙引號 方法 每次 5% quest apach 1, [email protected]/* */,效率很低 2,能使用單引號時不要使用雙引號 3,echo的效率比print要高,同時echo可以輸出多個變量 4,使用incl
WebViewJavascriptBridge 使用 js調iOS原生代碼
創建 smi creat color web var key urn cti js代碼和原生ios代碼進行交互使用WebViewJavascriptBridge非常簡化了我們的操作特別是在ios這邊 js 掉用ios原生代碼時要註意的幾個事項: 1、js和ios定義好相互調
java中如何在代碼中判斷時間是否過了10秒
cal () bsp som ret pan div color end long previous = 0L; ... { Calendar c = Cale
超實用的php代碼片段
substr time accept col 移除 ets 嵌入 amp bstr 超級有用的PHP代碼片段。當你在開發網站、應用或者博客時,利用這些代碼能為你節省大量的時間。一、查看郵件是否已被閱讀 當你在發送郵件時,你或許很想知道該郵件是否被對方已閱讀。這裏有段非常有趣