import UIKit
protocol Bank{
func acceptVisit()->Void
func review()->Void
func signContract()->Void
}
extension Bank{
func acceptVisit()->Void{
print("\(self)接受資訊")
}
func review() {
print("\(self)審核i資料")
}
func signContract() {
print("\(self)指導簽約")
}
}
class BankOfICBC : Bank, CustomDebugStringConvertible, CustomStringConvertible{
var debugDescription: String{
return "DEBUG:"+description
}
var description: String{
return "ICBC:"
}
func review() {
print("對不起ICBC目前不支持您的申請")
}
}
class BankOfABC: Bank , CustomStringConvertible, CustomDebugStringConvertible{
var description: String{
return "ABC:"
}
var debugDescription: String{
return "DEBUG:" + description
}
func review() {
print("\(self)需要您提供一份特殊資料")
}
}
class BankOfCCB : Bank, CustomStringConvertible, CustomDebugStringConvertible{
var description: String{
return "CCB:"
}
var debugDescription: String{
return "DEGBU:"
}
}
enum BankEnum{
case ICBC
case ABC
case CCB
}
class BackFactory{
class func chose( _ bank: BankEnum = BankEnum.ICBC )->Bank{
switch bank {
case .ABC:
return BankOfABC.init()
case .ICBC:
return BankOfICBC.init()
case .CCB:
return BankOfCCB.init()
default:
return BankOfICBC.init()
}
}
}
func test(_ bank:Bank)->Void{
bank.acceptVisit()
bank.review()
bank.signContract()
}
var bank: Bank = BackFactory.chose(BankEnum.ABC)
test(bank)
print("\n換個銀行試試\n")
bank = BackFactory.chose(BankEnum.ICBC)
test(bank)
test(BackFactory.chose(BankEnum.CCB))
房貸之銀行選擇
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
推薦閱讀更多精彩內容
- 下面選了最近十年里,十位名人所做的畢業演講。那么多的故事與經歷,其實只想告訴你一件事: 面對迷茫和不確定的未來,我...
- 1 昨天大學朋友小波突然打電話給我,說他在廣州看中了一套房,200萬,首付5成,需按揭100萬元,還款方式是選擇“...
- 《啊哈!算法》第 6 章第 3 節,Bellman-Ford 算法求最短路徑的 Swift 實現。 問題 已知 5...
- 感覺貓叔又發了一記大招,提出了一個我并不了解的能力——元認知。通讀了文章以后,大概理解為元認知就是一種好的思維習慣...