10 月 16 日
經過總結得出了一點api設計經驗,即傳識別符號,不穿指標。
// 最初的設計
void demoapi(pbyte pfiledata, int width, int height);
// 改良後的設計
void demoapi(handle hfile);
這樣的好處是,我們只需要在函式外部管理乙個檔案控制代碼就可以了,中間生成的檔案對映控制代碼和資料指標都可以作為臨時變數隨用隨建立,隨用隨釋放。這樣做就可以減少因為呼叫該函式而造成的無關**以及因為這些無關**引來的維護問題。
iple的所有與介面無關的api完全被放在dll中,我之所以沒有使用類,而是選擇了函式方式是因為各個演算法之間本身不存在任何繼承關係,大家存在的僅僅是資料耦合,而我經過很多次api和類庫設計實踐後認為,方法和資料有時也需要進行分離,因為在系統設計中,為了增大**重用率我們不得不建立比較複雜的關係和概念,雖然**容易維護了,但是隨著概念和關係數量的增加,維護起來恐怕就不是**層次的問題了,很可能引起牽一髮而動全身(這裡指的是概念和關係,**只是表現)。因此,為了減少概念和關係的大量引入和耦合,我們需要換個角度思考。
物件導向的思考方式:誰具備什麼行為
我的一種思考方式:誰需要處理什麼資料
p.s.:我這種嘗試比較挑戰現在大行其道的物件導向程式設計,但是思想還是物件導向思想,只是我認為物件導向的思想的最好實踐並不總是物件導向程式設計。
ios開發筆記 4
title ios開發筆記 4 date 2016 02 21 01 11 55 categories ios tags ios,筆記 一般此問題 都是由inte ce build與 中iboutlet的連線所引起的。可能是在 中對iboutlet的名稱進行了修改,導致inte ce build中的...
iOS開發筆記(4) 反射
反射的強大之處在於,我們可以將物件與依賴物件之間完全解耦,建立物件可以不引用標頭檔案,操作屬性 方法可以不依賴於物件,操作物件可以不依賴於型別,操作型別可以不依賴於引用等等等等。最直觀的效果是,即使不引用標頭檔案亦可操作型別 物件及對應屬性與方法。借助強大的runtime特性,在ios平台上我們也得...
Launcher開發筆記4 桌布
no.1 在mainfest中對你的activity新增主題 新增之後執行程式,activity背景就變成系統桌布 no.2 跳出桌布選擇對框框 在時間中新增 intent pickwall new intent intent.action set wall intent chooser inten...