美文网首页
房贷之银行选择

房贷之银行选择

作者: 搞好关系 | 来源:发表于2019-03-20 08:59 被阅读0次
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))


相关文章

网友评论

      本文标题:房贷之银行选择

      本文链接:https://www.haomeiwen.com/subject/fjogyqtx.html