这是一个创建于 4065 天前的主题,其中的信息可能已经有所发展或是发生改变。
貌似 Swift 完美了 Liskov Substitution Principle,像果 UIKit 面 UITableView 承自 UIScrollView,然後 override 掉了 UIScrollView 的 delegate property 所 conformed to 的 protocol 的做法在 Swift 面就不行了。但是我上基看了下 Liskov Substitution Principle 的定,感以上做法不反 Liskov Sbustituion Principle 啊。
Let q(x) be a property provable about objects x of type T. Then q(y) should be provable for objects y of type S, where S is a subtype of T.
但是 UITableViewDelegate protocol 承自 UIScrollViewDelegate protocol 啊。
1 条回复 2014-11-03 11:19:18 +08:00  | | 1 lingoerer 2014-11-03 11:19:18 +08:00 这个和死不死威夫特没关系,基本上所有抠卡和抠卡塔基里面的东西都遵循李氏代换……这是面向那谁的基础啊…… 顺便,有个值得一玩的东西叫做NSProxy,死威夫特里面没有OC里面有~~李氏代换的原则遇到这东西会很好玩 |