原创 Java內存模型(Java Memory Model)

The Java memory model specifies how the Java virtual machine works with the computer's memory (RAM). The Java virtual ma

原创 設計模式(十四)[結構模式] 適配器模式(Adapter)

1.什麼是適配器模式? 把一個類的接口變換成客戶端所期待的另一種接口,從而使原本接口不匹配而無法一起工作的兩個類能夠在一起工作。 2.類的適配器模式的結構 目標(Target)角色:這就是所期待得到的接口。 源(Adaptee)角色:現

原创 設計模式(八)[創建模式] 簡單工廠模式(Simple Factory)

有一個農業公司,專門向市場銷售各類水果。在這個系統裏需要描述下列的水果,葡萄(Grape),草莓(Strawberry),蘋果(Apple)。 package com.test; public interface Fruit {

原创 設計模式(七)迪米特法則(LoD)

迪米特法則(LoD):一個對象應當對其他對象有儘可能少的瞭解。 廣義迪米特法則在類的設計上的體現 1.優先考慮將一個類設置成不變類 一個對象與外界通信大體分成兩種,一種是改變這個對象的狀態的,另一種是不改變這個對象的狀態的。如果一個對象的

原创 設計模式(十三)[創建模式] 原型模式(Prototype)

1.什麼是原型模式? 通過給出一個一個原型對象來指明所要創建的對象的類型,然後用複製這個原型對象的辦法創建出更多同類型的對象。 2.簡單形式的原始模型 客戶(Client)角色:客戶類提出創建對象的請求。 抽象(Prototype)原

原创 設計模式(九)[創建模式] 工廠方法模式(Factory Method)

工廠方法模式是簡單工廠模式進一步抽象和推廣。在工廠方法模式中,核心的工廠類不再負責所有的產品的創建,而是將具體創建的工作交給子類去做。這個核心類則搖身一變,成爲抽象工廠的角色,僅負責給具體工廠子類必須實現的接口,而不接觸哪一個產品類應當被實

原创 設計模式(四)里氏代換原則(LSP)

什麼是里氏代換原則? 嚴格的表達是:如果對每一個類型爲T1的對象o1,都有類型爲T2的對象o2,使得以T1定義的所有程序P在所有的對象o1都替換成o2時,程序P的行爲沒有變化,那麼類型T2是類型T1的子類型。換句話說,一個軟件實體如果使

原创 設計模式(十)[創建模式] 抽象工廠模式(Abstract Factory)

採用抽象工廠模式設計出的系統類圖: package com.test01; public interface Creator { /** * 產品等級結構A的工廠方法 * @return */ publ

原创 設計模式(十六)[結構模式] 裝飾模式(Decorator)

1.什麼是裝飾模式? 裝飾模式又名包裝模式。裝飾模式以對客戶端透明的方式擴展對象功能,是繼承關係的一個替代方案。 2.模式的類圖 抽象構件(Component)角色:給出一個抽象接口,以規範準備接收附加責任的對象。 具體構件(Concr

原创 設計模式(三)Java語言的接口和抽象類

一.接口 什麼是接口? 接口是一個類所具有的方法的特徵集合,是一種邏輯上的抽象。接口和類最重要的區別是,接口僅僅描述方法的特徵,而不給出方法的實現;而類不僅給出方法的特徵,而且給出方法的實現。具體說來接口代表一個角色,它包裝與該角色相

原创 設計模式(二)“開-閉”原則(OCP-----Open-Closed Principle)

什麼是“開-閉”原則? “開-閉”原則講的是:一個軟件實體應當對擴展開放,對修改關閉。這個原則說的是,在設計一個模塊的時候,應當在不必修改源代碼的情況下改變這個模塊的行爲。 滿足“開-閉”原則的設計可以給一個軟件系統兩個無可比擬的優越性

原创 設計模式(一)統一建模語言UML

    UML類圖主要描述的是對象與類之間的關係,包含依賴(Dependency),關聯(Association),聚合(Aggregation),組合(Composition),泛化(Generalization),實現(Realizat

原创 設計模式(六)接口隔離原則(DIP)和合成/聚合複用原則(CARP)

1.接口隔離原則(DIP)(這個沒有多說的) 使用多個專門的接口比使用單一的總接口要好。 2.合成/聚合複用原則(CARP) 合成/聚合複用原則就是在一個新的對象裏面使用一些已有的對象,使之成爲新對象的一部分;新的對象通過向這些對象的委派達

原创 Zeroc ICE 之zeroc Registry(Java)

zeroc文檔很少,都是我採用“窮舉法“踩坑,一個一個摸索。                 1.首先在windows中安裝zeroc ice,在eclipse中安裝Ice Builder插件 2.新建一個java項目(如上圖),然後用I