中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

怎么樣做網(wǎng)站的目錄結(jié)構(gòu)友情鏈接買賣代理

怎么樣做網(wǎng)站的目錄結(jié)構(gòu),友情鏈接買賣代理,二維碼公眾號怎么制作,哪些網(wǎng)站可以做兼職設計1.原型模式定義 用一個已經(jīng)創(chuàng)建的實例作為原型,通過復制該原型對象來創(chuàng)建一個和原型對象相同的新對象; 1.1 原型模式優(yōu)缺點 優(yōu)點 當創(chuàng)建一個新的對象實例較為復雜時,使用原型模式可以簡化對象的創(chuàng)建過程,通過復制一個已有的實例…

1.原型模式定義

? ? ? ? 用一個已經(jīng)創(chuàng)建的實例作為原型,通過復制該原型對象來創(chuàng)建一個和原型對象相同的新對象;

1.1 原型模式優(yōu)缺點

優(yōu)點

  • 當創(chuàng)建一個新的對象實例較為復雜時,使用原型模式可以簡化對象的創(chuàng)建過程,通過復制一個已有的實例可以提高新實例的創(chuàng)建效率;
  • 相較比工程模式,原型模式提供了簡化的創(chuàng)建結(jié)構(gòu),無需專門的工廠類來創(chuàng)建產(chǎn)品;
  • 可以使用深克隆的方式保存對象狀態(tài),輔助實現(xiàn)撤銷操作;

缺點

  • 需要為每個類配備一個克隆方法,而且這個克隆方法位于一個類的內(nèi)部,對已有的類改造時需要修改源代碼,違反了開閉原則;

1.2 原型模式適用場景

? ? ? ? 創(chuàng)建對象的成本比較大,比如對象中的數(shù)據(jù)是經(jīng)過復雜計算或者需要從數(shù)據(jù)庫得到,這種情況就可以使用原型模式,從其他已有的對象中進行拷貝,而不是每次都創(chuàng)建新的對象;

  • 資源優(yōu)化場景,如當進行對象初始化需要很多外部資源,IO資源、數(shù)據(jù)文件、CPU、網(wǎng)絡、內(nèi)存等;
  • 復雜的依賴場景,如A對象的創(chuàng)建依賴B,B依賴C,C依賴D。。。
  • 性能和安全要求的場景,如同一個用戶在一個會話周期里,可能會反復登錄平臺或使用某些受限的功能,每一次訪問請求都會訪問授權(quán)服務器進行授權(quán),但如果每次都通過 new 產(chǎn)生一個對象會非常煩瑣,這時則可以使用原型模式;
  • 同一個對象可能被多個修改者使用的場景;
  • 需要保存原始狀態(tài)的場景,如記錄歷史操作的場景;

2.原型模式原理

? ? ? ? 原型模式核心就是通過克隆復制一個對象;

  • 抽象原型類(Prototype):聲明克隆方法的接口類,是所有具體原型類的公共父類,它可以是抽象類也可以是接口;
  • 具體原型類(ConcretePrototype):實現(xiàn)在抽象原型類中聲明的克隆方法,在克隆方法中返回自己的一個克隆對象;
  • 客戶類(Client):在客戶類中使一個原型對象克隆自身從而創(chuàng)建一個新的對象,由于客戶類針對抽象原型類編程,因此用戶可以根據(jù)需要選擇具體原型類,系統(tǒng)具有較好的擴展性,增加或者替換原型類都比較方便;?

?

2.1 深克隆與淺克隆

  • 深克隆:完全創(chuàng)建一個新對象,且新對象的變量同原型一致,二者互不影響;
  • 淺克隆:新對象的變量同原型一致,且新對象的引用仍然指向原型對象,二者共享同一對象;

? ? ? ? Java 中的 Object 類的 clone() 方法就是淺克隆;如下面常用的BeanUtils用到了淺克隆;

BeanUtils.cloneBean(Object obj);

???????? 對象序列化之后再進行反序列化獲取到的就是不同對象,這就是深克隆;

SerializationUtils.clone(T object);

3.原型模式實現(xiàn)

【實例】

? ? ? ? 如一個廣告郵件的發(fā)送,大部分信息都是用的模板是相同的,只有收件人等不同,如果每發(fā)送一個郵件就創(chuàng)建一個郵件對象比較浪費,這就可以用到原型模式;

【代碼】

? ? ? ? 首先實體類中重寫clone()方法

@Data
public class Mail implements Cloneable{//收件人private String receiver;//郵件名稱private String subject;//稱謂private String appellation;//郵件內(nèi)容private String context;//構(gòu)造函數(shù)public Mail(AdvTemplate advTemplate) {this.context = advTemplate.getAdvContext();this.subject = advTemplate.getAdvSubject();}@Overridepublic Mail clone(){Mail mail = null;try {mail = (Mail)super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();}return mail;}
}

? ? ? ? 然后即可克隆該對象

//模擬郵件發(fā)送
int i = 0;//把模板定義出來,數(shù)據(jù)是從數(shù)據(jù)庫獲取的
Mail mail = new Mail(new AdvTemplate());
mail.setTail("xxx銀行版權(quán)所有");
while(i < MAX_COUNT){//下面是每封郵件不同的地方Mail cloneMail = mail.clone();cloneMail.setAppellation(" 先生 (女士)");Random random = new Random();int num = random.nextInt(9999999);cloneMail.setReceiver(num+"@"+"liuliuqiu.com");//發(fā)送 郵件sendMail(cloneMail);i++;
}
http://www.risenshineclean.com/news/8039.html

相關(guān)文章:

  • 使用mvs2010做網(wǎng)站營銷型網(wǎng)站建設案例
  • 長葛網(wǎng)站制作成功的品牌推廣案例分析
  • 一個做女性服裝批發(fā)的網(wǎng)站_最好的關(guān)鍵詞選擇是百度seo價格
  • 站酷網(wǎng)頁版廣州網(wǎng)站排名優(yōu)化報價
  • 美圖秀秀可以做網(wǎng)站嗎昆明新聞頭條最新消息
  • 上海市建設工程招標造價網(wǎng)站百度搜索排名與點擊有關(guān)嗎
  • 網(wǎng)站建設設電工培訓課程
  • 營銷型網(wǎng)站建設虧1關(guān)鍵詞推廣軟件排名
  • 做網(wǎng)站seo優(yōu)化百度一下網(wǎng)頁搜索
  • 做視頻網(wǎng)站用哪個軟件好松原頭條新聞今日新聞最新
  • 手機網(wǎng)站制作方法大型網(wǎng)站制作
  • 安徽安慶中考成績查詢醫(yī)療網(wǎng)站優(yōu)化公司
  • 承接博彩網(wǎng)站建設seo關(guān)鍵詞搜索優(yōu)化
  • 做購物網(wǎng)站適合的服務器快速開發(fā)平臺
  • wordpress播放本地mp3站內(nèi)seo是什么意思
  • 2017年做網(wǎng)站好難企業(yè)策劃
  • 怎么做網(wǎng)站維護國外網(wǎng)站排名前十
  • 移民網(wǎng)站制作一網(wǎng)信息一個簡單便捷的新聞網(wǎng)站
  • 自定義網(wǎng)站模塊seo優(yōu)化教學視頻
  • php網(wǎng)站開發(fā) pdfseo顧問賺錢嗎
  • 學校網(wǎng)站制作三只松鼠網(wǎng)絡營銷策劃書
  • 動易門戶網(wǎng)站價格新網(wǎng)站多久會被百度收錄
  • 如何進行網(wǎng)站推廣百度熱搜榜
  • 現(xiàn)在如何給網(wǎng)站做外鏈百度指數(shù)怎么下載
  • 新疆網(wǎng)站制作網(wǎng)站關(guān)鍵詞免費優(yōu)化
  • wordpress對應國家語言百度站長工具seo查詢
  • 泰安網(wǎng)絡推廣長沙seo招聘
  • 網(wǎng)站建設官網(wǎng)怎么收費網(wǎng)址查詢域名解析
  • 管理咨詢網(wǎng)站網(wǎng)絡做推廣廣告公司
  • 多用戶商城系統(tǒng)網(wǎng)站建設上海seo顧問