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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

原型模式讲解

發布時間:2024/4/13 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原型模式讲解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先我們看一下他的定義,原型模式是指原型實例指定創建對象的種類,并且通過拷貝這些原型創建新的對象,他的特點是不需要知道任何創建的細節,并且不調用構造函數,類型是創建型,那原型模式相對簡單的多

他雖然簡單,但是想用好他,還是有一定難度的,這里面有一些小坑,那后面實際coding的時候,也會一起來演示這個坑,我們看一下原型模式適用的場景,首先是類初始化消耗較多資源,一旦我們創建一個類消耗資源過多的時候,并且還要創建對象消耗資源過多的時候,可以考慮使用原型模式,另外就是new產生的一個對象,需要非常繁瑣的過程,無論是數據準備,也就是給里面的屬性賦值,或者里面的方法屬性的訪問權限的,還有當構造函數比較復雜的時候,還有一種場景,就是我們在循環體中生產大量對象時,那這幾個場景都可以考慮使用原型模式,那我們看一下原型模式的優點 首先原型模式性能上,比直接new一個對象啊,性能高,另外簡化他的創建過程,那有優點也有缺點

他的缺點是什么呢,必須配備克隆方法,如果我們沒有重寫Object的克隆方法的話,那這個呢也不會生效,那這個模式的核心,就是克隆方法,通過這個方法進行對象的拷貝,Java提供了一個Cloneable這個接口來標識,這個對象是可拷貝的,那為什么要標識呢,在JVM中,只有被標識的對象才有可能被拷貝,有可能被拷貝,那怎么樣才一定被拷貝呢,那就是說,我們還要覆蓋Object的克隆方法,所以這個缺點,就是必須配備克隆方法,那有時候可能會忘記,重寫Object的克隆方法,那導致引入了風險,那我們接著看一下,對克隆復雜對象,注意復雜對象,還有對克隆出的對象,進行復雜的改造時,容易引入風險,那這里說的復雜對象,就跟第三條有關了,在對復雜對象進行深拷貝,淺拷貝的時候呢,要運用得當,否則很容易引入風險,如果對克隆出的對象進行復雜改造時,也是非常容易引入風險的,所以原型非常簡單

但是這些坑我們要了解,并且規避他們,那最主要的原型的擴展,深克隆和淺克隆,后續在coding的過程中,來領會深克隆和淺克隆,對于引用類型,如果需要他們指向不同的對象,那我們一定要使用深克隆

深克隆對于某一個對象的引用對象的時候,我們要顯示的去寫,對于哪個屬性進行深克隆,而淺克隆實現比較簡單,跟著coding就實現了淺克隆,那這些知識點,如果現在理解不了沒關系,一會我們一起coding之后,就理解了,接下來我們就一起來coding,查看一下源碼解析,因為原型模式的UML,非常非常簡單,主要還是通過克隆這種方式,所以類之間的關系非常簡單,現在我們就一起來coding

?

總結

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

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