s19930811

  • 鏈接分析算法之:HITS算法

     HITS(HITS(Hyperlink – Induced Topic Search) ) 算法是由康奈爾大學( Cornell University ) 的Jon Kleinberg 博士于1997 年首先提出的,為IBM 公司阿爾馬登研究中心( IBM Almaden Research Center) 的名為“CLEVER”的研究…

    開發運維 2015-07-20
  • 設計模式 ( 十四 ) 迭代器模式Iterator(對象行為型)

    1.概述 類中的面向對象編程封裝應用邏輯。類,就是實例化的對象,每個單獨的對象都有一個特定的身份和狀態。單獨的對象是一種組織代碼的有用方法,但通常你會處理一組對象或者集合。 集合不一定是均一的。圖形用戶界面框架中的 Window 對象可以收集任意數量的控制對象 - Menu、Slider 和 Button。并且,集合的實現可以有多種方式:PHP 數字是一個集…

    Linux干貨 2015-07-19
  • 設計模式 ( 十三 ) 命令模式Command(對象行為型)

    1.概述         在軟件設計中,我們經常需要向某些對象發送請求,但是并不知道請求的接收者是誰,也不知道被請求的操作是哪個,我們只需在程序運行時指定具體的請求接收者即可,此時,可以使用命令模式來進行設計,使得請求發送者與請求接收者消除彼此之間的耦合,讓對象之間的調用關系更加靈活。  例子1:電視機遙控器…

    Linux干貨 2015-07-16
  • 設計模式 ( 十二 ) 職責鏈模式(Chain of Responsibility)(對象行為

    1.概述        你去政府部門求人辦事過嗎?有時候你會遇到過官員踢球推責,你的問題在我這里能解決就解決,不能解決就推卸給另外個一個部門(對象)。至于到底誰來解決這個問題呢?政府部門就是為了可以避免屁民的請求與官員之間耦合在一起,讓多個(部門)對象都有可能接收請求,將這些(部門)對象連接成一條鏈,并且沿著這條鏈傳遞…

    Linux干貨 2015-07-15
  • 設計模式(十一)代理模式Proxy(結構型)

    1.概述        因為某個對象消耗太多資源,而且你的代碼并不是每個邏輯路徑都需要此對象, 你曾有過延遲創建對象的想法嗎 ( if和else就是不同的兩條邏輯路徑) ? 你有想過限制訪問某個對象,也就是說,提供一組方法給普通用戶,特別方法給管理員用戶?以上兩種需求都非常類似,并且都需要解決一個更大的問題:你如何提供…

    Linux干貨 2015-07-09
  • 設計模式(十)享元模式Flyweight(結構型)

    相對于其它模式,Flyweight模式在PHP實現似乎沒有太大的意義,因為PHP的生命周期就在一個請求,請求執行完了,php占用的資源都被釋放。我們只是為了學習而簡單做了介紹。 1. 概述 面向對象技術可以很好地解決系統一些靈活性或可擴展性或抽象性的問題,但在很多情況下需要在系統中增加類和對象的個數。當對象數量太多時,將導致運行代價過高,帶來性能下降等問題?!?/p>

    Linux干貨 2015-07-08
  • 設計模式(九)外觀模式Facade(結構型)

    1. 概述      外觀模式,我們通過外觀的包裝,使應用程序只能看到外觀對象,而不會看到具體的細節對象,這樣無疑會降低應用程序的復雜度,并且提高了程序的可維護性。例子1:一個電源總開關可以控制四盞燈、一個風扇、一臺空調和一臺電視機的啟動和關閉。該電源總開關可以同時控制上述所有電器設備,電源總開關即為該系統的外觀模式設計。 2.…

    Linux干貨 2015-07-06
  • 設計模式(八)裝飾器模式Decorator(結構型)

    1. 概述        若你從事過面向對象開發,實現給一個類或對象增加行為,使用繼承機制,這是所有面向對象語言的一個基本特性。如果已經存在的一個類缺少某些方法,或者須要給方法添加更多的功能(魅力),你也許會僅僅繼承這個類來產生一個新類—這建立在額外的代碼上。       通過繼…

    Linux干貨 2015-07-03
  • 設計模式(七)組合模式Composite(結構型)

    1. 概述 在數據結構里面,樹結構是很重要,我們可以把樹的結構應用到設計模式里面。 例子1:就是多級樹形菜單。 例子2:文件和文件夾目錄 2.問題 我們可以使用簡單的對象組合成復雜的對象,而這個復雜對象有可以組合成更大的對象。我們可以把簡單這些對象定義成類,然后定義一些容器類來存儲這些簡單對象??蛻舳舜a必須區別對象簡單對象和容器對象,而實際上大多數情況下用…

    Linux干貨 2015-07-01
  • 設計模式(六)橋連模式Bridge(結構型)

    1. 概述       在軟件系統中,某些類型由于自身的邏輯,它具有兩個或多個維度的變化,那么如何應對這種“多維度的變化”?如何利用面向對象的技術來使得該類型能夠輕松的沿著多個方向進行變化,而又不引入額外的復雜度? 例子1:設想如果要繪制矩形、圓形、橢圓、正方形,我們至少需要4個形狀類,但是如果繪制的圖形需要具有不同的…

    Linux干貨 2015-06-26
  • 設計模式(四)原型模式Prototype(創建型)

    1.   概述 我們都知道,創建型模式一般是用來創建一個新的對象,然后我們使用這個對象完成一些對象的操作,我們通過原型模式可以快速的創建一個對象而不需要提供專門的new()操作就可以快速完成對象的創建,這無疑是一種非常有效的方式,快速的創建一個新的對象。 例子1:孫悟空拔下一嘬猴毛,輕輕一吹就會變出好多的孫悟空來。 例子2:寄個快遞下面是一個郵寄快…

    Linux干貨 2015-06-25
  • 設計模式(五)適配器模式Adapter(結構型)

    1. 概述:          接口的改變,是一個需要程序員們必須(雖然很不情愿)接受和處理的普遍問題。程序提供者們修改他們的代碼;系統庫被修正;各種程序語言以及相關庫的發展和進化。         例子1:iphone…

    Linux干貨 2015-06-25
  • 設計模式(三)建造者模式Builder(創建型)

    1. 概述        在軟件開發的過程中,當遇到一個“復雜的對象”的創建工作,該對象由一定各個部分的子對象用一定的算法構成,由于需求的變化,復雜對象的各個部分經常面臨劇烈的變化,但將它們組合在一起的算法相對穩定。        例子1:買肯德基     &…

    Linux干貨 2015-06-25
  • 設計模式(二)單件模式Singleton(創建型)

      幾乎所有面向對象的程序中,總有一些類的對象需要是唯一的,例如,通過數據庫句柄到數據庫的連接是獨占的。您希望在應用程序中共享數據庫句柄,因為在保持連接打開或關閉時,它是一種開銷。再如大家最經常用的IM,如QQ,在同一臺電腦,一個帳號只能有唯一的登錄。 1. 問題 怎樣確保一個特殊類的實例是獨一無二的(它是這個類的唯一實例),并且這個實例…

    Linux干貨 2015-06-24
  • 設計模式(一)工廠模式Factory(創建型)

      在面向對象編程中, 最通常的方法是一個new操作符產生一個對象實例,new操作符就是用來構造對象實例的。但是在一些情況下, new操作符直接生成對象會帶來一些問題。舉例來說, 許多類型對象的創造需要一系列的步驟: 你可能需要計算或取得對象的初始設置; 選擇生成哪個子對象實例; 或在生成你需要的對象之前必須先生成一些輔助功能的對象。 在…

    Linux干貨 2015-06-23
欧美性久久久久