package com.linewell.modeldesgin.prototype
/*** 樣例類,週報,通過其提供的copy方法完成乙個原型模式
* @param name 姓名
* @param date 時間
* @param content 內容
*/case class weeklylog(var name: string, var date: string, var content: string, var attachment: attachment)
/*** 附件樣例類
* @param name 附件名
*/case class attachment(var name: string)
/*** 測試客戶端
* created by ctao on 2015/8/8.
*/val log_previous = weeklylog("陳珏煊", "第10周", "本週主要是進行設計模式學習",attachment("原型模式.pdf"))
println("*******週報*******")
println("周次:" + log_previous.date)
println("姓名:" + log_previous.name)
println("內容:" + log_previous.content)
log_previous.attachment.download()
println("----------------------------")
val log_new = log_previous.copy()
/*** 結果為false,由此可以看出為深轉殖
*/println(log_new.eq(log_previous))
/*** 結果為true,附件物件為淺轉殖
*/println(log_new.attachment.eq(log_previous.attachment))
log_new.date = "第11周"
log_new.attachment = attachment("工廠模式.pdf")
println("*******週報*******")
println("周次:" + log_new.date)
println("姓名:" + log_new.name)
println("內容:" + log_new.content)
log_new.attachment.download()
println("----------------------------")
}package com.linewell.modeldesgin.prototype
/*** 原型模式
* created by ctao on 2015/8/8.
*//**
* 原型管理器
*/object prototypemanager
/*** 公文樣例類
* @param title 標題
*/case class officialdocument(title: string)
/*** 可行性分析報告
* @param title 標題
*/class far(title: string) extends officialdocument(title)
/*** 軟體需求規格說明書
* @param title 標題
*/class srs(title: string) extends officialdocument(title)
package com.linewell.modeldesgin.prototype
/*** 測試客戶端
* created by ctao on 2015/8/8.
*///原型管理器
val pm = prototypemanager
//公文物件,從hashmap中獲取轉殖物件
val doc1 = pm.getofficialdocument("")
val doc2 = pm.getofficialdocument("")
doc1.display()
doc2.display()
println(doc1.eq(doc2))
}
建立型模式 原型模式
使用原型例項指定建立物件的種類,並且通過轉殖這些原型建立新的物件 原理是將乙個原型物件傳給要發動建立的物件,該物件通過請求原型物件轉殖自己來建立過程 轉殖方法 public prototype clone jdk中為我們提供了轉殖的方法clone 從object繼承下來,乙個物件要實現轉殖,需要實現...
建立型模式 原型模式
原型 prototype 模式主要用於建立物件的轉殖,通常其最簡單的形式就是採用自定 clone 函式並 傳入物件引數以返回此物件的乙個副本,這在 python 實作上可使用內定 copy.cop y 或 copy.deepcopy 函式來達到此目的。當已有乙個物件但對此物件的某些部分會被變更卻又想...
原型模式 建立型模式
文章首發個人部落格 如果我們有乙個類 sheep 它裡面有兩個屬性,名稱 name 年齡 age 現在我們有乙個它的例項 s1 我們需要按照這個例項的屬性再去建立兩個物件。1 sheep data public class sheep 2 main public class main 原型模式 用原...