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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

设计模式--原型模式

發(fā)布時間:2025/3/19 asp.net 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式--原型模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

跟MM用QQ聊天,一定要說些深情的話語了,我搜集了好多肉麻的情話,需要時只要copy出來放到QQ里面就行了,這就是我的情話prototype了。(6塊錢的麻辣燙,你要不要?)?? 原始模型模式:通過給出一個原型對象來指明所要創(chuàng)建的對象的類型,然后用復(fù)制這個原型對象的方法創(chuàng)建出更多同類型的對象。原始模型模式允許動態(tài)的增加或減少產(chǎn)品類,產(chǎn)品類不需要非得有任何事先確定的等級結(jié)構(gòu),原始模型模式適用于任何的等級結(jié)構(gòu)。缺點是每一個類都必須配備一個克隆方法。??

?

因為Java中的提供clone()方法來實現(xiàn)對象的克隆(具體了解clone()按這里),所以Prototype模式實現(xiàn)一下子變得很簡單.

那接下來就實現(xiàn)我的“6塊錢的麻辣燙,你要不要?”copy;

?

package com.soyoungboy.prototype;public class AbstractWords implements Cloneable {String message;public Object clone() {Object object = null;try {object = super.clone();} catch (CloneNotSupportedException exception) {System.err.println("AbstractWords is not Cloneable");}return object;}public void setMessage(String message) {this.message = message;}public String getSpoonName() {return this.message;}}

?

package com.soyoungboy.prototype;public class WordsOfLoveMeaasge extends AbstractWords {@Overridepublic void setMessage(String message) {super.setMessage(message);} }

?

 

package com.soyoungboy.prototype;public class Main {public static void main(String[] args) {AbstractWords spoon = new WordsOfLoveMeaasge(); spoon.setMessage("6塊錢的麻辣燙,你要不要?");System.out.println(spoon.getSpoonName());System.out.println("--------------------");AbstractWords spoon2 = (AbstractWords)spoon.clone();System.out.println(spoon2.getSpoonName());System.out.println("--------------------");AbstractWords spoon3 = (AbstractWords)spoon.clone();System.out.println(spoon3.getSpoonName());}}

?

?

 

運行結(jié)果:

6塊錢的麻辣燙,你要不要?
--------------------
6塊錢的麻辣燙,你要不要?
--------------------
6塊錢的麻辣燙,你要不要?


2015年12月6日22:41:30更新

原型設(shè)計模式的概念:

制定創(chuàng)建對象的種類,通過拷貝原型來創(chuàng)建新的對象。

使用場景:

通過new產(chǎn)生對象需要非常繁瑣的數(shù)據(jù)準備或者訪問權(quán)限的時候可以使用原型設(shè)計模式。

淺拷貝,深拷貝:

淺拷貝:淺拷貝僅僅復(fù)制所考慮的對象,而不拷貝它所引用的對象;

深拷貝:深復(fù)制把要復(fù)制的對象所引用的對象都復(fù)制了一遍。

如下有篇文章:先看看,等以后深刻理解再來寫自己的思路

http://www.cnblogs.com/shuaiwhu/archive/2010/12/14/2065088.html

?原型模式的優(yōu)缺點:

優(yōu)點:原型設(shè)計模式能夠防止外部對這個只讀對象的修改,通常通過返回對象拷貝來實現(xiàn)只讀的限制

android中原型模式的使用

intent中使用原型模式:

Uri uri = Uri.parse("smsto:0800000123"); Intent shareIntent = new Intent(Intent.ACTION_SENDTO, uri); shareIntent.putExtra("sms_body", "The SMS text"); Intent intent = (Intent)shareIntent.clone() ;startActivity(intent);

?

總結(jié)

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

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