日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 设计模式 prototype_Java设计模式之Prototype原型模式

發(fā)布時間:2024/9/27 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 设计模式 prototype_Java设计模式之Prototype原型模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、場景描述

創(chuàng)建型模式中,從工廠方法模式,抽象工廠模式,到建造者模式,再到原型模式,我的理解是,創(chuàng)建對象的方式逐步從編碼實現(xiàn)轉向內存對象處理。

例如,在“儀器數(shù)據(jù)采集器”的子類/對象“PDF文件數(shù)據(jù)采集器”和“Excel文件數(shù)據(jù)采集器”的創(chuàng)建過程中

工廠模式下定義各子類,并由(抽象)工廠類Factory創(chuàng)建,因此各子類可在類定義中定義各自的屬性;

建造者模式下,通過不同的創(chuàng)建者類Builder創(chuàng)建不同的子對象,此時不再定義子類;

而原型模式下,則完全由調用者基于父對象克隆創(chuàng)建子對象,不在針對子對象創(chuàng)建類或者其相關的工廠、建造者類。

三種模式對應于不同的場景,實際操作時,根據(jù)場景合理選擇模式。

原型模式下,基于原型類對象,克隆創(chuàng)建新對象,因此為原型類對象賦予的屬性值在新對象中可直接使用,免去了重復賦值;

例如儀器數(shù)據(jù)采集器的共同初始化工作可在原型類對象中完成,隨后將其克隆出PDF文件數(shù)據(jù)采集器對象和Excel文件數(shù)據(jù)采集器對象,并為兩對象屬性做后續(xù)的擴展,免去了公共屬性的初始化工作;

克隆操作在內存中完成,由于對象類型的屬性值存儲為引用,因此克隆分淺克隆和深克隆,通過Serializable接口實現(xiàn)深克隆。

二、示例代碼

原型類:

package lims.designpatterndemo.prototypedemo;

import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.io.Serializable;

public class EquipmentDataCapture implements Cloneable, Serializable {

private String filePath = "file path";

private String equipmentData = "file content";

//

public String getFilePath() {

return this.filePath;

}

public void setFilePath(String filePath) {

this.filePath = filePath;

}

public String getEquipmentData() {

return this.equipmentData;

}

public void setEquipmentData(String equipmentData) {

this.equipmentData = equipmentData;

}

//

private static final long serialVersionUID = 1L;

private SerializableObject obj;

//

public SerializableObject getObj() {

return obj;

}

public void setObj(SerializableObject obj) {

this.obj = obj;

}

//

public EquipmentDataCapture getEquipmentDataCapture() throws CloneNotSupportedException {

EquipmentDataCapture capture = (EquipmentDataCapture) super.clone();

return capture;

}

// public EquipmentDataCapture getPdfFileCapture() throws CloneNotSupportedException {

// EquipmentDataCapture capture = (EquipmentDataCapture) super.clone();

// capture.setEquipmentData("pdf file content");

// return capture;

// }

// public EquipmentDataCapture getExcelFileCapture() throws CloneNotSupportedException {

// EquipmentDataCapture capture = (EquipmentDataCapture) super.clone();

// capture.setEquipmentData("excel file content");

// return capture;

// }

/* 深復制 */

public EquipmentDataCapture newEquipmentDataCapture() throws IOException, ClassNotFoundException {

/* 寫入當前對象的二進制流 */

ByteArrayOutputStream bos = new ByteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(bos);

oos.writeObject(this);

/* 讀出二進制流產(chǎn)生的新對象 */

ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());

ObjectInputStream ois = new ObjectInputStream(bis);

return (EquipmentDataCapture)ois.readObject();

}

}

class SerializableObject implements Serializable {

private static final long serialVersionUID = 1L;

}

調用端:

package lims.designpatterndemo.prototypedemo;

public class PrototypeDemo {

public static void main(String[] args) throws CloneNotSupportedException {

EquipmentDataCapture edc = new EquipmentDataCapture();

EquipmentDataCapture capture = null;

// capture = edc.getPdfFileCapture();

// capture = edc.getExcelFileCapture();

capture = edc.getEquipmentDataCapture();

capture.setEquipmentData("equipment data file content");

String fileContent = capture.getEquipmentData();

System.out.println(fileContent);

}

}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的java 设计模式 prototype_Java设计模式之Prototype原型模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久草久草久草 | 欧美人与性动交g欧美精器 国产在线视频91 | 高清一区二区视频 | 国产精品50页 | 欧美日韩电影一区二区 | 久久久久久久久久影院 | 欧洲色综合| 亚洲 欧美 综合 | 亚洲乱码精品久久久久.. | 亚洲黄页| 国精产品一区一区三区有限公司杨 | 日本日韩欧美 | 国产成人无码精品久久久电影 | 国产九色| 五级 黄 色 片 | 成人黄色片免费 | 东方av正在进入 | 毛片官网 | 特级av | 激情av一区| 欧美三区视频 | av图片在线 | 国产熟妇一区二区三区aⅴ网站 | 国产精品自拍第一页 | 无遮挡国产 | 爱爱综合网 | 海量av资源 | 国产在线观看 | 午夜免费在线 | 少妇免费看 | 大尺度电影在线 | 久久综合伊人77777麻豆最新章节 | 黄色小视频网 | 免费看91的网站 | 一区二区小说 | 免费亚洲精品 | 日韩一级在线观看视频 | 国产性猛交╳xxx乱大交 | 99re8在线精品视频免费播放 | 黄色av影视| 自拍偷拍国产精品 | 天天射日日射 | 国产精品亚洲成在人线 | 欧美乱妇日本无乱码特黄大片 | 欧美激情在线狂野欧美精品 | 人妻精品一区一区三区蜜桃91 | 99久久久无码国产精品 | 夜夜夜夜爽 | 97色干| 热久久最新 | 三年中文在线观看免费观看 | 足交在线观看 | 国产欧美一区二区精品忘忧草 | 欧美日性视频 | 欧美激情性生活 | 欧美丰满熟妇xxxxx | 亚洲精品免费在线播放 | 国产精品久久久久久人 | 日本一区二区不卡在线观看 | 欧美日韩国产精品成人 | 久久综合亚洲色hezyo国产 | 久草99| 四季av日韩精品一区 | 亚州色图欧美色图| 国产精品久久久久久久免费大片 | 亚洲AV无码国产日韩久久 | 日本欧美久久久久免费播放网 | 超碰666| 91插插插插插插插插 | 精品欧美| 可以看的av网址 | 一区二区三区日韩精品 | 国精产品乱码一区一区三区四区 | 中日韩黄色大片 | 欧美性猛交xxxx乱大交3 | 日韩一区在线观看视频 | 99精品网| 伊人网久久久 | 欧美黄色a级| 亚洲午夜久久久久久久久 | 最新日韩视频 | 正在播放一区 | 爱情岛亚洲品质自拍极速福利网站 | 大吊一区二区三区 | 五月激情婷婷在线 | 日韩av网站在线观看 | 精品久久无码中文字幕 | 不卡二区| www.色在线观看 | 亚洲aⅴ在线 | 亚洲成人精品 | 一本之道高清无码视频 | 大屁股白浆一区二区 | 成人一级大片 | 欧美精品极品 | 天堂一级片 | 黄色a一级| 99久久99久久精品国产片桃花 | 黄色一集片 |