公告版位


清單 9. 在對象之間鬆散耦合的好習慣

<?php

interface AddressFormatter

easonyo 發表在 痞客邦 留言(1) 人氣()

如果您尚未打算用 OO 原則創建應用程序,則使用 PHP 的面向對象(OO)的語言特性,這 7 個習慣將幫助您開始在過程編程與 OO 編程之間進行轉換。

在 PHP 編程早期,PHP 代碼在本質上是限於面向過程的。過程代碼 的特徵在於使用過程構建應用程序塊。過程通過允許過程之間的調用提供某種程度的重用。

但是,沒有面向對象的語言構造,程序員仍然可以把 OO 特性引入到 PHP 代碼中。這樣做有點困難並且會使代碼難於閱讀,因為它是混合範例(含有偽 OO 設計的過程語言)。使用 PHP 代碼中的 OO 構造 — 例如能夠定義和使用類、能夠構建使用繼承的類之間的關係以及能夠定義接口 — 可以更輕鬆地構建符合優秀 OO 實踐的代碼。

雖然沒有過多模塊化的純過程設計運行得很好,但是 OO 設計的優點表現在維護上。由於典型應用程序的大部分生命週期都花費在維護上,因此代碼維護是應用程序生命週期的重要部分。並且在開發過程中代碼維護很容易 被遺忘。如果在應用程序開發和部署方面存在競爭,那麼長期可維護性可能被放在比較次要的地位。

模塊化 — 優秀 OO 設計的主要特性之一 — 可以幫助完成這樣的維護。模塊化將幫助封裝更改,這樣可以隨著時間的推移更輕鬆地擴展和修改應用程序。

總的來說,雖然構建 OO 軟件的習慣不止 7 個,但是遵循這裡的 7 個習慣可以使代碼符合基本 OO 設計標準。它們將為您提供更牢固的基礎,在此基礎之上建立更多 OO 習慣並構建可輕鬆維護與擴展的軟件。這些習慣針對模塊化的幾個主要特性。有關獨立於語言的 OO 設計優點的更多信息,請參閱 參考資料

7 個優秀 PHP OO 習慣包括:

easonyo 發表在 痞客邦 留言(0) 人氣()

 

       解決在 IE 下無法將 HTML/XML 轉成 jQuery 物件的問題 。當傳回的內容是XML,若未將HttpRequest的dataType設為"xml",最後在處理XML時,會發生在Firefox上可行但在IE不成功的結果。

因為好奇,追了一下jQuery的Source Code,發現關鍵出在這裡:

    httpData: function( xhr, type, filter ) {
        var ct = xhr.getResponseHeader("content-type"),
            xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,
            data = xml ? xhr.responseXML : xhr.responseText;

easonyo 發表在 痞客邦 留言(0) 人氣()

 

自從jQuery被微軟選秀入宮採納應用於未來產品之 後,從原本Javascript老鳥才會識貨相挺的另類神兵利器,忽然一夕間傳遍鄉里,老幼皆知。不過我相信仍有不少人對jQuery十分陌生,這篇文章 的對象鎖定對jQuery毫無所悉的朋友,以Q&A方式解答幾個基本問題,以觀念介紹為主,儘量不涉及Coding細節。

  1. jQuery是什麼? 可以吃嗎?
    jQuery是一組可以神奇地簡化Javascript程式寫法的Open Source Library,由John Resig於 2006發表。透過Selector、函數串接、元素陣列整批處理等巧妙的語言特色,加上對於HTML處理中常用的Event、Attribute、 CSS Style、元素新增/刪除都提供了簡便的寫法,能將原本要寫上數百行的Javascript程式簡化到幾行搞定,故深受許多Javascript開發者 的歡迎。
  2. 為什麼Javascript老鳥看到jQuery這麼興奮? 她當真如此傾國傾城?
    寫 好Javascript從來不是件簡單事,從拼拼湊湊在自己的IE上運作正常,要提升到讓Internet四面八方湧來的Firefox、Opera、 Safar都能跑得順暢,猶如登七星山到爬黑色奇萊的差別。Javascript Framework可以幫我們處理掉惱人的相容細節,讓我們用統一的方式就搞定大部分的主流瀏覽器,當未來有新的瀏覽器規格問市時,我們只要更新 Framework版本即可。同時,Framework還會針對常用的功能,提供簡便的公用函數,用較簡單寫法取代原本繁瑣的程式。
    而眾多Javascript Framework中, jQuery算是最能實現
    Do More With Less精神的一個,跟其他Framework相比,完成同樣工作,所需要程式行數少得嚇人,因此特別吸引寫Javascript已經寫到手酸的老鳥。
  3. jQuery好學嗎?

easonyo 發表在 痞客邦 留言(0) 人氣()

 

使用Javascript撰寫Client-Side程式也好些年了,卻從來沒對Javascript這個語言下過苦工,一直抱持用到哪學到哪的精神。在接觸jQuery之後,見識到不少以前沒用過的神奇寫法,一開始還真花了點時間才搞懂,在此做個簡單的分享:

陣列表示法

宣告已知元素的陣列,可以不必動用到new Array(),寫成var ary = ["1", "2", "3"];就好了,一口氣把宣告跟內容指定都搞定。

這跟C# 3.0裡的Implicit Typed Array是不是有異曲同工之妙?

抄襲? 我倒不會這麼解讀,程式語言在發展過程中,本來就該融入其他語言犀利之處、偷習他派武功的精華,從Developer的使用者角度,誰在乎意識形態搞什麼漢賊不兩立? 貫徹"Developer之所欲,常在我心",才是王道!

easonyo 發表在 痞客邦 留言(0) 人氣()

[javascript] 把css 與 javascript load 近來的function()

function loadJS(url){
var retJS = document.createElement('script');
retJS.setAttribute("language","JavaScript");
retJS.setAttribute("src", url);
document.getElementsByTagName("body").item(0).appendChild(retJS);
}

easonyo 發表在 痞客邦 留言(0) 人氣()