scala實現原型模式

2021-09-02 12:13:38 字數 2162 閱讀 4746

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 原型模式 用原...