//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
/*
单一职责原则(SRP)Single Responsibility Principle
应该有且仅有一个原因引起类的变更
好处:
1.类的复杂性降低,实现什么指责都有清晰明确的定义
2.复杂性降低,可读性提高
3.可维护性提高
4.变更引起的风险降低
*/
//单一职责
//打电话分了UserBo,UserBiz两个接口,一个接口负责
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()