设计模式 -1-SRP单一职责原则

//: Playground - noun: a place where people can play


import UIKit


var str = "Hello, playground"

/*

 单一职责原则(SRP)Single Responsibility Principle

 

 应该有且仅有一个原因引起类的变更

 

 好处:

    1.类的复杂性降低,实现什么指责都有清晰明确的定义

    2.复杂性降低,可读性提高

    3.可维护性提高

    4.变更引起的风险降低

 

 

 */

//单一职责

//打电话分了UserBoUserBiz两个接口,一个接口负责

protocol UserBo {                   //协议管理

    ///拨电话

    func dial(phonenum:String)

    ///挂电话

    func hangup()

}


protocol UserBiz {                  //数据传送

    func chat(o: ChatTool)

}




protocol ChatTool {

    func chatBy() -> String

}

class Dinaxin: ChatTool {

    func chatBy() -> String{

        return "电信"

    }

}

class Yidong: ChatTool {

    func chatBy() -> String{

        return "移动"

    }

}

class UserPhone: UserBo,UserBiz {

    

    func dial(phonenum: String) {

        debugPrint("拨电话" + phonenum)

    }

    func chat(o: ChatTool) {

        

        debugPrint("通过" + o.chatBy() + "通话")

    }

    func hangup() {

        debugPrint("挂电话")

    }

}

class Test{

    var userPhone:UserPhone!


    func test(){

        userPhone = UserPhone()

        userPhone.dial("1391496862")

        userPhone.chat(Yidong()) //只修改这里就能改通话方式

        userPhone.hangup()

    

    

    }

}


Test().test()









你可能感兴趣的:(设计模式)