亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

設計模式—詳解篇—創建型模式

系統 1764 0

1. ? java 程序中 , 對象可以被顯式地或者隱式地創建?

?????? 1.1顯 式的創建對象的方式

??????? A. new 語句創建對象

??????? B. 運用反射手段 , 調用 java.lang.Class 或者 java.lang.reflect.Constructor 類的 newInstance()

?????????? 例方法

??????? C. 調用對象的 clone() 方法

??????? D. 運用序列化手段 , 調用 java.io.ObjectInputStream 對象的 readObject() 方法 .

????? 1.2隱式 建對象的方式

??????? A. String a= "hello"; 這種屬于 String 類型直接對應一個 String 對象,引用一個 String 對象。若此時運行 String b="hello"; a b 是同一個對象。

??????? B. String + 的使用。

??????? C. JVM 加載一個類的時候,會隱含創建描述這個類的 Class 實例。

2 .顯示創建中各種方式的用途及優缺點?

?? 2.1 new 語句創建對象:

如果構造方法中有參數,當使用這種方式寫程序時不利于擴展參數,擴展時會導致多出修改

?? 2.2 運用反射手段

此方法可以幫助減少 if-else 語句

?? 2.3 clone 方法

???? ? 對應了創建型模式的 prototype 模式,用于克隆一個具有同樣屬性的對象出來

????? 注意深度 clone 的實現

?? 2.4 運用序列化手段

????? 還沒使用過

3. ? 根據對象的復雜性使用不同的設計模式漸進的實現對象的構造?

3.1Singleton 模式

??? 保證一個類僅有一個實例,應提供一個訪問它的全局訪問點

有些對象是需要計劃生育的,如太陽。

Singleton 的實現方式有餓漢式和懶漢式兩種

餓漢式代碼:

?? ??????? public class Sun{

? ???? ??? private static final Sun uniqueInstance = new Sun();

? ???? ??? private Sun(){}

? ???? ??? public static Sun getInstance(){

??? ???? ? ??? return? ? uniqueInstance ;

? ???? ??? }

}

懶漢式代碼:

public class Sun {

? private static Sun? ? uniqueInstance ;

? private Sun(){}

? public static Sun ?getInstance(){

??? if ( uniqueInstance == null ){

????? synchronized (Sun. class ){

??????? if ( uniqueInstance == null ){

? ? ? ? ?? uniqueInstance = new Sun();

??????? }

????? }

??? }

??? return? ? uniqueInstance ;

? }

}

3.2 prototype 原型模式 (clone)

??? 用原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象。

?? 有時創建的對象要求和已有對象完全一樣,如個人簡歷

?? 此模式分為淺復制和深復制

?? 淺復制:復制出的對象的所有原型變量都與原來的對象具有相同的值,而所有的其他對象引用的變量都仍然指向原來的對象。

?? ?????????? public class Resume implements Cloneable {

??? ??? ? private String name ;

??? ????? private int age ;

?

??? ?????? @Override

??? ?????? public Resume clone() throws CloneNotSupportedException {

?????? ????? Resume message = (Resume) super .clone();

?????? ????? return message;

??? ?????? }

}

????????? 深復制:將對象中的引用型變量也復制出來

???????????????? ? public class Resume implements Cloneable {

??? ?????? ? private User user ;

??? ?????? ? @Override

??? ?????? ? public Resume clone() throws CloneNotSupportedException {

?????? ??? ? ?? Resume message = (Resume) super .clone();

?????? ??? ? ?? if ( this . user != null ) {

?????????? ??? ??? message. user = this . user .clone();

?????? ???? ??? }

?????? ???? ??? return message;

??? ?????? ? ? ? }

}

?? 3.3 Factory 工廠模式

????? ???? 此模式又分為三個子模式:簡單工廠模式、工廠方法模式、抽象工廠模式。他們因要創造的對象的復雜程度不同而漸進變化。

????????? 簡單工廠模式:這好比個人的作坊,生產的產品比較簡單

????????? 生產蘋果的例子

???????????????? ? public class AppleFactory {

??? ??? ??? ? public static Apple getApple() {

?????? ??? ? ? Apple apple = new Apple();

?????? ??? ? ? return apple;

??? ?????? ? }

?

??? ??????? ? private AppleFactory() {

??? ??????? ? }

}

工廠方法:此時生產的為統一接口且不同實現的產品。工廠有個接口,生產的產品也有個接口,每種具體的產品對應一個具體工廠

抽象工廠:此時生產的產品為相互依賴的、有一定關聯的多種產品。工廠有個接口,每個工廠都對應生產出這些相互依賴的產品。

? ? ? ? 3.4 Builder 建造者模式

?????????? ? ??? 此模式創造的是一個復雜的對象,達到對象的構建與它的表示相分離,使得同樣的

????????? 構建過程可以創建出不同的表示。

?????????????? 看圖說話:

??????????????
設計模式—詳解篇—創建型模式
?

???????????? 模式中有個指揮員,指揮具體的建造者建超產品,最有建造者通過 getResult() ? 獲取產品

?

設計模式—詳解篇—創建型模式


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 特级aa一级欧美毛片 | 色 综合 欧美 亚洲 国产 | 天天操夜夜做 | 青青青国产免费全部免费观看 | 亚洲欧美精品天堂久久综合一区 | 中文字幕在线一区二区在线 | 国产精品久久久久久久伊一 | 亚洲综合一区二区 | 日本免费一区二区久久人人澡 | 一级特黄一欧美俄罗斯毛片 | 国产一级做性视频 | 亚洲福利一区福利三区 | 欧美日韩一区二区在线观看视频 | 99久久久久国产精品免费 | 蘑菇视频绿巨人小黄鸭 | 国产成人久久综合二区 | 99热久久国产综合精品久久国产 | 国产亚洲午夜精品 | 天堂网一区 | 国产高清在线精品一区免费97 | 婷婷色中文网 | 神马影院我不卡手机版 | 第一福利在线观看 | 国产精品第1页 | 一级毛片一级毛片一级级毛片 | 在线有码| 久久久中文字幕日本 | 日韩大片在线 | freesex寂寞老妇hd| 破处一级片 | 午夜免费福利视频 | 亚洲va天堂va欧美ⅴa | 亚洲精品老司机综合影院 | 91精品国产免费 | 99伊人 | 午夜看看| 国产精品亚洲玖玖玖在线靠爱 | 国产在线2021| 色偷偷久久一区二区三区 | 成人免费网站久久久 | 一区二区三区四区免费视频 |