設計模式系列–Builder

  一.類圖   二.意圖  將一個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。  三.適用性  a) 當建立複雜物件的演算法應該獨立於該對象的組成部分以及它們的裝配方式時。  b) 當構造過程必須允許被構造的對象有不同的表示時。  四.執行個體  首先聲明我是一個技術男,所以我在學校做過不少項目。有自己獨立完成的,也有和別人合作完成的大項目。一天我們Java小分隊接了一個大項目,經過一番討論之後技術選型是這樣的:SSH+MySQL。但是團隊中之後組長精通Spring。無

設計模式系列–Singleton

  一.類圖   二.意圖  保證一個類僅有一個執行個體,並提供一個訪問它的全域訪問點。  三.適用性  a) 當類只能有一個執行個體而且客戶可以從一個眾所周知的訪問點訪問它時。  b) 當這個唯一執行個體應該是通過子類化可擴充的,並且客戶應該無需更改代碼就能使用一個擴充的執行個體時。  四.實現方式  1. 懶漢模式package explore.singleton;//懶漢模式//直到第一次調用的時候再初始化public class Singleton1 {private static

設計模式系列–Adapter

一.類圖類適配器: 對象適配器: 二.意圖將一個類的介面轉換成客戶希望的另外一個介面。A d a p t e r 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。三.適用性a) 你想使用一個已經存在的類,而它的介面不符合你的需求。b) 你想建立一個可以複用的類,該類可以與其他不相關的類或不可預見的類(即那些介面可能不一定相容的類)協同工作。c) (僅適用於對象A d a p t e r)你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的介面。對象適配器可以適配它

設計模式系列–Template

一.類圖 二.意圖定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中。Te m p l a t e M e t h o d 使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟。三.適用性a) 一次性實現一個演算法的不變的部分,並將可變的行為留給子類來實現。b) 各子類中公用的行為應被提取出來並集中到一個公用父類中以避免代碼重複。c) 控制子類擴充。模板方法只在特定點調用“h o o k ”操作,這樣就只允許在這些點進行擴充。四.執行個體模板模式我想用的最多的就是在DAO模式中

設計模式系列–Strategy

一.類圖 二.意圖定義一系列的演算法,把它們一個個封裝起來, 並且使它們可相互替換。本模式使得演算法可獨立於使用它的客戶而變化。三.適用性a) 許多相關的類僅僅是行為有異。“策略”提供了一種用多個行為中的一個行為來配置一個類的方法。b) 需要使用一個演算法的不同變體。例如,你可能會定義一些反映不同的空間/時間權衡的演算法。當這些變體實現為一個演算法的類層次時[ H O 8 7 ] ,可以使用原則模式。c) 演算法使用客戶不應該知道的資料。可使用原則模式以避免暴露複雜的、與演算法相關的資料結構。d

設計模式系列–Proxy

一.類圖 二.意圖為其他對象提供一種代理以控制對這個對象的訪問。三.適用性a) 在需要用比較通用和複雜的對象指標代替簡單的指標的時候,使用Proxy 模式。下面是一 些可以使用Proxy 模式常見情況:1. 遠程代理(Remote Proxy )為一個對象在不同的地址空間提供局部代表。2. 虛代理(Virtual Proxy )根據需要建立開銷很大的對象。在動機一節描述的ImageProxy 就是這樣一種代理的例子。3. 保護代理(Protection Proxy )控制對原始對象的訪問。保護代

pku 2594 Floyd+最小路徑覆蓋

pku 2594 大意是說給定一個有向非循環圖,用最少的路徑去覆蓋整個圖,路徑間允許頂點相交這個題一看就覺得是最小路徑覆蓋,可是允許頂點相交想了一會兒。說白了就一句話既然允許頂點相交,那就要把連通性也傳遞下去,這樣就可以變換到標準的最小路徑覆蓋問題貼個代碼,只此一次 主要是My Code很很很醜CodeCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->

深入理解JVM讀書筆記–Class檔案結構

一.Class檔案結構1. Class檔案是一組以8位位元組為基礎的二進位流,採用一種類似C語言結構體的虛擬碼類儲存。它只有兩種資料類型:無符號數和表。2. 無符號數屬於基本的資料類型,以u1,u2,u4,u8分表代表1個,2個,4個,8個位元組。他可以用來描述數字,索引引用,數量值,UTF-8編碼的字串。3. 表有多個無符號數或其他表作為資料項目構成的符合資料類型,所有的表都已_info結尾。4. Class檔案格式類型名稱數量U4Magic(魔數)1U2Minor_version(次版本號碼

OpenGL中將深度緩衝設為唯讀

在紅包書裡頭有這麼一說,大概是說有時候要渲染一個透明的物體,這樣的話如果情境簡單,我們可以通過決定繪製順序來保證繪製結果正確,但是如果加入了情境變化等其他一系列變換,可能就不是那麼容易了。更好的辦法就是在繪製透明物體的時候將深度緩衝設定成唯讀,也就是可以進行深度檢測,但是不寫入深度結果具體做法是:glDepthMask(flase);////繪製透明物體glDepthMask(true);最後一行講深度緩衝改成可寫可讀的。這個技巧可以和模板緩衝結合使用,可以建立出類似鏡子的效果。一個小的Demo

深入理解JVM讀書筆記–位元組碼執行引擎

一. 運行時棧幀結構1. 棧幀是用於支援虛擬機器進行方法調用和方法執行的資料結構,它是虛擬機器運行時資料區中的虛擬機器棧的元素。棧幀儲存了方法的局部變數,運算元棧,動態連結,方法返回地址等資訊。2. 對於執行引擎來講,活動的線程,只有棧頂的棧幀是有效,稱為當前棧幀,這個棧幀所關聯的方法稱為當前方法。局部變數表1. 局部變數表是一組變數值儲存空間,用於存放方法參數和方法內部定義的局部變數。在java程式被編譯為Class檔案時,在方法的Code屬性的max_locals資料項目中確定該方法所需要分

設計模式系列–Observer

一.類圖 二.意圖定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時, 所有依賴於它的對象都得到通知並被自動更新。三.適用性a) 當一個抽象模型有兩個方面, 其中一個方面依賴於另一方面。將這二者封裝在獨立的對象中以使它們可以各自獨立地改變和複用b) 當對一個對象的改變需要同時改變其它對象, 而不知道具體有多少對象有待改變。c) 當一個對象必須通知其它對象,而它又不能假定其它對象是誰。換言之, 你不希望這些對象是緊密耦合的。四.執行個體鄉村愛情第五部中大腦袋為大拿出了一個主意,當楊總來的

立方體貼圖(cube mapping)

OpenGL實現立方體貼圖;所謂立方體貼圖,就是用6張紋理來形成一個立方體,當然這個不是為了直接顯示的,然後根據物體在的位置,視點,通過反射,與立方體的交點處的顏色值就是該點的紋理了,也就是對現實世界光滑物體反射周圍環境的一種類比。OpenGL中實現環境映射不止這一種,在Nehe也有提到這個,不過不是用的cube mapping 而是sphere mapping由上面的可以知道,立方體映射是視點相關的,設一個立方體(Cube)表面上的任意點的座標是(x,y,z),則從立方體原點到此點的向量是V=

設計模式系列–Factory

寫在開頭:原廠模式是我們開發中最常用的模式,原廠模式又有三個不同的版本:簡單工廠,Factory 方法,抽象工廠,下面依次講解。  一.類圖  1. 簡單工廠  2. Factory 方法  3. 抽象工廠  二.意圖  1. 簡單工廠  定義了一個用於建立對象的工具類,這個類包含特定的邏輯判斷,可以決定什麼時候建立一個產品。  2. Factory

陰影錐法產生陰影(volume shadow)

直接上,改天再寫點兒;這個demo就是Nehe的第27課,採用的是volume shadow,具體的是z-pass演算法,下次打算實現下z-fail 和其他的一種,如下:z-pass演算法存在出錯情況,如下:也就是當光源在物體裡頭的時候,應該是不能投影的,不過我的這個圖可能沒調好。。。。debug瘋了都,懶得調了,各位看官要是願意就再調調,一定能看到的網上關於volume

設計模式系列–Decorator

  一.類圖  二.意圖  動態地給一個對象添加一些額外的職責。就增加功能來說,D e c o r a t o r 模式相比產生子類更為靈活。  三.適用性  a) 在不影響其他對象的情況下,以動態、透明的方式給單個對象添加職責。  b) 處理那些可以撤銷的職責。  c) 當不能採用產生子類的方法進行擴充時。一種情況是,可能有大量獨立的擴充,為支援每一種組合將產生大量的子類,似的子類數量呈爆炸性增長。另一種情況是因為類定義被隱藏,或類定義不能適用於子類。  四.執行個體  大學階段90%的學生考

Frame Buffer Object(類似離屏表面渲染)

OpenGL為了方便,作為擴充提出了fbo的概念,直觀來說就是類似D中的離屏表面渲染,也就是可以將結果渲染渲染到一個非螢幕的表面上,一般是一個紋理對象,然後就可以像使用紋理一樣的使用這個對象了。最直接的一個例子就是後視鏡嘛,動態紋理。以前可能要用pbo實現,或者說用映像拷貝出現,有了fbo之後,pbo可能就會被您漸漸的忘記了,話說FBO就是為了這個目的提出來的。具體的原理不說了,參考下面的文章,說得很清楚:http://blog.csdn.net/huawenguang/archive/2007

tomcat 綁定花生殼免費網域名稱

 tomcat綁定網域名稱    現在很多的公司的網站都是用tomcat作為應用服務區的,可是對於初學者,8080連接埠號碼是如何去掉的,這些網站是如何和網域名稱綁定到一起的呢?一個tomcat是如何綁定多網域名稱?並且這些網域名稱是如何對應不同的項目呢?而且我的伺服器沒放在機房,放在我的本地,我應該如何把我的伺服器給映射到外網?這一系列的問題,今天就這個問題,我來說一下。1.

3D編程的4個境界

3D編程的4個境界很久沒來這了,也一直想寫點東西,可惜沒時間寫。昨天突然想到點東西,想寫下來。說說3D編程的4個境界吧,由於我個人水平和見識有限,以及時間比較倉促,說的不對不好,還請諒解和指正。第一階段:初學者階段。這個階段主要是熟悉3D圖形學的基本原理,和基本api的使用。特別是對於空間的變換,矩陣的原理要有非常清楚的認識。能夠用簡單的資源,做一個簡單的demo,基本上就是達到了。這個階段比較簡單,基本上每個人都可以達到,學習方法也很簡單,就是看書,看demo,寫代碼。時間周期大概1年。

CLH Lock Queue 的實現

public class ClhSpinLock { private final ThreadLocal<Node> pred; private final ThreadLocal<Node> node; private final AtomicReference<Node> tail = new AtomicReference<Node>(new Node()); public ClhSpinLock() {

深入理解JVM讀書筆記–類載入機制

一.概述1. 定義:虛擬機器把描述類的資料從Class檔案載入到記憶體,並對資料進行校正、轉換解析和初始化,最終形成可以被虛擬機器直接使用的java類型。類載入和串連的過程都是在運行期間完成的。二.類載入的時機1. 類載入的生命週期:載入(Loading)-->驗證(Verification)-->準備(Preparation)-->解析(Resolution)-->初始化(Initialization)-->使用(Using)-->卸載(Unloading)

總頁數: 61357 1 .... 5726 5727 5728 5729 5730 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.