import UIKit
//程式碼複製
class A11{
func doo(){
print("A")
print("A")
print("A")
print("B")
print("B")
print("B")
}
}
class A12{
func doo(){
print("A")
print("A")
print("A")
print("C")
print("C")
print("C")
}
}
// 包裝重複
class StaticOrSingleton{
class func AAA(){
print("A")
print("A")
print("A")
}
}
class A21{
func doo(){
StaticOrSingleton.AAA()
print("B")
print("B")
print("B")
}
}
class A22{
func doo(){
StaticOrSingleton.AAA()
print("C")
print("C")
print("C")
}
}
// 包裝不同 by 繼承
class A31{
func doo(){
StaticOrSingleton.AAA()
bbb()
}
func bbb(){
print("B")
print("B")
print("B")
}
}
class A32:A31{
override func bbb(){
print("C")
print("C")
print("C")
}
}
// 包裝不同 by 繼承2
class A40{
func doo(){
StaticOrSingleton.AAA()
bbb()
}
func bbb(){}
}
class A41:A40{
override func bbb(){
print("B")
print("B")
print("B")
}
}
class A42:A40{
override func bbb(){
print("C")
print("C")
print("C")
}
}
// 包裝不同 by 委派
protocol B{
func bbb()
}
class B1:B{
func bbb(){
print("B")
print("B")
print("B")
}
}
class B2:B{
func bbb(){
print("C")
print("C")
print("C")
}
}
class A6{
var b:B
init(b:B){
self.b = b
}
func doo(){
StaticOrSingleton.AAA()
b.bbb()
}
}
A6(b: B1()).doo()
A6(b: B2()).doo()
// 包裝不同 by 函數變數
class A7{
var b:()->()
init(b:()->()){
self.b = b
}
func doo(){
StaticOrSingleton.AAA()
b()
}
}
A7(b: {
print("B")
print("B")
print("B")
}).doo()
A7(b: {
print("C")
print("C")
print("C")
}).doo()
2015/11/10
swift 物件導向觀念
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言