網上蒐集拼湊總結所得,侵刪。
當乙個程式設計新手真正想要寫出一些可以用的程式,比較快速的方法是在乙個框架的基礎上完成。不過另一方面對於新手來說,用框架的缺點就是,用完了框架,
可能會發現還是不理解整個系統,因為只新增**是不夠的,要理解系統,就必須要理解程序的執行流程。
「框架」的定義是什麼?按照我的理解,如果乙個應用程式的**是可以擴充套件的,我們就稱這個應用程式的**是乙個框架。
這裡的「擴充套件」具體是乙個什麼概念呢?一般而言,乙個框架被確定的時候,程序的大致執行流程就已經確定好了,程式設計師如果想要擴充套件這個框架,可以通過「繼承+覆寫」的方式完成。
擴充套件的具體過程如下:
我們都知道在物件導向程式設計中,基類的指標可以指向基類和它的子類,程式設計師想要擴充套件程式,第一步是用乙個新的類繼承原框架中的某個類,覆寫某些方法;
第二步是在程序例項化父類的地方稍微修改一下**,用自定義類的物件去替換原本的物件。就完成了整個擴充套件的過程。
如果我們看不到例項化類的那一部分**,那麼替換的過程往往是通過修改配置檔案xml的方式來實現的,這個檔案會在框架的某個地方被讀取。
如果不是物件導向程式設計,也可以通過新增模組的方式來完成,第一步是新增一些可以被程序執行的函式;第二步是在某些地方讓程序呼叫這些函式。
明白了如何擴充套件乙個框架,程式設計師才能更好的理解什麼能夠做到,什麼不能做到,能夠完成合理的設計。
完整地分析程序的執行流程是理解乙個框架的基本要求,這樣我們才知道要繼承哪些類,覆寫哪些方法,在什麼地方用自己的類替換框架自帶的類。
例如在ios應用開發中,我們常常聽見自定義導航控制器做法,這對於乙個不理解擴充套件原理的程式設計師來說,是非常難以想象的。
不過現在我們可以知道,自定義導航控制器,並不是重新去寫乙個控制器,而是用乙個類繼承導航控制器,覆寫控制器中的某些方法,然後在例項化控制器的地方用自己的類替換掉原來的類。
正確理解擴充套件原理,我們也就能更好地理解框架和類庫的區別了。框架已經把程序的整個執行流程定義好了,程式設計師的工作是覆寫和替換;
而類庫定義了程序的某些區域性流程,整個系統的流程是由程式設計師來定義的。框架和類庫都有助於減少重複**。
庫和框架的區別
庫和框架都是一種有別於軟體 面向程式開發者的產品形式。正因為如此,也有很多人誤以為庫就是框架,或者認為指定語言的庫就是框架。庫的英語為 library 簡寫 lib 框架的英語為 framework。庫是將 集合成的乙個產品,供程式設計師呼叫。物件導向的 組織形式而成的庫也叫類庫。面向過程的 組織形...
軟體框架和類庫的區別
本文源自 net通訊框架的設計 實現與應用 書稿第一章內容 類庫是一些類的集合,只要我們將一些可以復用的類集中放到乙個library中,我們就可以稱其為乙個類庫。類庫中的許多元素 如類 結構 介面 列舉 委託等 之間可能有一些關聯,但這些關聯通常用於支援乙個類概念或介面概念的完整表達。如果我們從乙個...
框架的概念,框架與庫的區別
框架,庫的區別?庫,供我們呼叫。比如,檔案處理類。處理類。框架,組織controller。框架是 的半成品。成熟的框架往往包含大量的常用庫 處理庫,檔案上傳庫等 為什麼用框架?接收引數 驗證引數 拼接sql語句 考慮安全性,是否有sql注入 執行sql等等。mysql connect mysql q...