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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

设计模式:原型模式

發布時間:2025/6/15 asp.net 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式:原型模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?java中的Object類是所有類的根類。Object類提供了一個clone()方法,該方法可以將一個java對象復制一份,但是需要實現clone的java類必須要實現一個接口Cloneable,該接口表示該類能夠復制且具有復制的能力。

?

??原型模式基本介紹

? ? ? 1). 原型模式是指: 用原型實例指定創建對象的種類,并且通過拷貝這些原型,創建新的對象。

? ? ? 2). 原型模式是一種創建型的設計模式,允許一個對象再創建另外一個可定制的對象,無需知道如何創建的細節。

? ? ?3). 工作原理是通過將一個原型對象傳給那個要發動創建的對象。這個要發動創建的對象通過請求原型對象拷貝它們自己來實施創建,即?對象.clone()。

?

Prototype:?原型類,??聲明一個克隆自己的接口。

CreatePrototype:?具體的原型類,實現一個克隆自己的操作。

?

?

public class Car implements Cloneable{String color; // 顏色String brand; // 品牌public Car() {}public Car(String color, String brand) {super();this.color = color;this.brand = brand;}// 克隆該實例,使用默認的clone方法來完成@Overrideprotected Object clone() throws CloneNotSupportedException {Car car = (Car)super.clone();return car;}public String getColor() {return color;}@Overridepublic String toString() {return "Car [color=" + color + ", brand=" + brand + "]";}public void setColor(String color) {this.color = color;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;} } public class Client {public static void main(String[] args) throws CloneNotSupportedException{Car car = new Car("white", "BMW");Car car2 = (Car)car.clone();Car car3 = (Car)car.clone();System.out.println(car2);System.out.println(car3);} }

在spring中, scope="prototype"就是使用原型模式創建bean的

<bean id="student" class="com.atChina.Test.Student" scope="prototype"><property name="name" value="宋江"/><property name="age" value="20" /></bean>

?

?深拷貝:

? ?深拷貝實現方式一: 重寫clone方法來實現深拷貝。

? ?深拷貝實現方式二: 通過對象序列化實現深拷貝。

總結

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

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