|
|
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可能不是合适的工具。
|
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
|
|
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
|
|
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
|
|
Andy Votava · 从父类定义调用学生方法 1 年前 |