關於 Swift 和 Liskov Substitution Principle

2014-11-03 09:27:55 +08:00
 wezzard
貌似 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 啊。
2441 次点击
所在节点    程序员
1 条回复
lingoerer
2014-11-03 11:19:18 +08:00
这个和死不死威夫特没关系,基本上所有抠卡和抠卡塔基里面的东西都遵循李氏代换……这是面向那谁的基础啊……
顺便,有个值得一玩的东西叫做NSProxy,死威夫特里面没有OC里面有~~李氏代换的原则遇到这东西会很好玩

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/143533

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX