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)
沒有留言:
張貼留言