![]() |
1
6
有时,如果相关特性经常一起使用,那么它可以帮助在单个类中收集相关特性。
当你开始使用它时,你只有一个或两个直接基类而不是很多。
|
![]() |
2
6
如果您的用户类真的有那么多合适的特性,那么您可能只是拥有一个复杂的应用程序。拥有五个mixin比从其他地方复制五个函数要好。 简化的一些可能性:
|
![]() |
3
4
使用适配器而不是混音器。所以在您的例子中,您将拥有一个IFollowable接口和从书店或用户到IFollowable的适配器。
看到了吗
http://ginstrom.com/scribbles/2009/03/27/the-adapter-pattern-in-python/
关于Python中适配器的一个描述,特别是martijnfaassen关于使用工厂和接口以及
|
![]() |
4
4
用纸和笔写下实际实例化的具体类(例如User和BookStore)。列出希望这些类执行的所有方法。只有看到这个列表,你才能理性地决定什么样的类层次结构最适合你的情况。手工书写的缓慢可能会迫使你以一种新的方式思考对象之间的关系。试着向想象中的朋友(或我们)详细解释你的课程聪明但对你的问题一无所知的人。表达细节的缓慢可能会带来洞察力。 mixin可能会给你很多通用性,让你的项目得以发展,但是你经常被迫在通用性(复杂)和实用性(简单)之间做出妥协。四个混合料允许2**4种可能的混凝土等级。如果在实践中,具体类要少得多,那么mixin可能不是合适的工具。
|
![]() |
Vedant · 如何解决python啦啦队长问题?[已关闭] 2 年前 |
![]() |
cobby · 在战略模式中使用工厂模式? 3 年前 |
![]() |
Nobody · Java中带while循环的三角形模式 3 年前 |
![]() |
Eduard Stefanescu · 如何在层之间传输异常? 6 年前 |
![]() |
D. Schreier Talha Noyon · 对于目录中的每个类 6 年前 |
![]() |
Tanvi Jaywant · 如何重载类 6 年前 |