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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

大话设计模式读书笔记--6.原型模式

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

簡單的復制粘貼極有可能造成重復代碼的災難, 但是java中提供了克隆的功能, 如果一個對象創建過程復雜,又要頻繁使用, 在初始化信息不發生變化的情況下,應當采取克隆而不是new一個對象

定義

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

也就是說, 只需知道原型對象的類型,就可以拷貝,?拷貝分為淺拷貝和深拷貝,可參考淺拷貝和深拷貝

?

模式結構

Prototype: 抽象原型類,聲明克隆接口

ConcretePrototypeA: 具體的原型類, 實現克隆操作

模式實現

在java中,有一個Cloneable接口,它的作用是聲明克隆的能力, 一個類只有實現它才可以被拷貝,然后重寫clone(),否則在運行時會拋出CloneNotSupportedException異常

下面是代碼實現,原型類和具體原型類合為一個了

public class Resume implements Cloneable{private String name;public Resume(String name) {this.name = name;}@Overridepublic Resume clone() throws CloneNotSupportedException {return (Resume)super.clone();}} //客戶端 public class PrototypeMain {public static void main(String[] args) throws Exception {Resume resume = new Resume("張三");System.out.println(resume);System.out.println(resume.clone());} }

優點及使用場景

優點: 簡化對象的創建過程,隱藏了對象創建的細節,又對性能大大的提高

使用場景:

1.頻繁使用一個對象,比如在循環體中

2.創建過程比較復雜,?在初始化信息不發生變化的情況下

?

轉載于:https://www.cnblogs.com/liuconglin/p/6411732.html

總結

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

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