隨筆 - 40, 文章 - 0, 評論 - 20, 引用 - 0
          數(shù)據(jù)加載中……

          23種經(jīng)典的設(shè)計模式_Prototype模式(原形模式)

          很多時候,創(chuàng)建對象的時候,只是在某些屬性值上有區(qū)別,而大部分都很相似,但是這樣的對象的初始化相對來說比較復(fù)雜,而且
          需要耗費(fèi)較長的時間或資源,這種情況下,我們可以考慮使用Prototype模式。我覺得這種模式實(shí)用于這樣的情況:如果該類的用戶對于該
          類的對象是怎么創(chuàng)建的,對類的內(nèi)部結(jié)構(gòu)這些都不關(guān)心的情況,并且該類的創(chuàng)建過程比較費(fèi)時或資源時,可以考慮使用該模式。下面是該模式的
          一個例子:

          Prototype 類

          package com.moonsoft;

          import java.lang.Cloneable;
          public class Prototype implements Cloneable {
          ?
          ?public String myname;
          ?
          ?Prototype(){
          ??System.out.println("start:"+System.currentTimeMillis());
          ??for( int i=0; i< 9999999; i++){???
          ??}
          ??System.out.println("end:"+System.currentTimeMillis());
          ?}
          ?
          ?public Object clone(){
          ??Object o = null;
          ??try{
          ???o = super.clone();???
          ??}
          ??catch(CloneNotSupportedException ex){
          ???ex.printStackTrace();
          ??}
          ??return o;
          ?}
          ?
          ?public void whoami(){
          ??System.out.println(myname);
          ?}
          }


          測試類

          package com.moonsoft;

          public class Test {
          ?
          ?public static void main(String [] argv){
          ??Prototype? p = new Prototype();
          ??p.whoami();
          ??p.myname = "loucy";
          ??Prototype? p1 = (Prototype)p.clone();
          ??p1.whoami();?
          ??
          ?}
          }

          posted on 2006-04-16 15:21 月亮 閱讀(559) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 靖西县| 阜阳市| 曲松县| 星座| 全州县| 紫阳县| 临城县| 南雄市| 梓潼县| 营山县| 茂名市| 石棉县| 湖南省| 广丰县| 周宁县| 桐城市| 平陆县| 工布江达县| 博湖县| 南漳县| 和田县| 安溪县| 乃东县| 犍为县| 恩施市| 达尔| 浦江县| 耒阳市| 阿拉尔市| 简阳市| 马龙县| 温泉县| 冀州市| 娱乐| 赤峰市| 大厂| 嘉荫县| 舞阳县| 牙克石市| 延寿县| 铜陵市|