cur*_*zen 5 android effective-java
有效的Java(Joshua Bloch)第17项说:
"设计和文件或继承或禁止它"
然而,只是粗略地浏览Android API就会发现大多数API类都是非最终的; 这是确定的,如果它们也记录为(继承View的Activity,例如).但是也有几个非final类,但是文档没有提到这些类的可继承性.只是一些任意的例子来说明我的观点:
WifiManager,NotificationManager...)UriMatcher.Camera.开放性和可扩展性是Android的哲学,这里的惯例是否反过来?意思是,可以假设所有 Android API类都被设计为继承(无论是明确记录还是其他); 除非宣布最后?
只是我的 \xe2\x82\xac0,02:按照书本进行干净的 OO 设计是一回事,让事情在实践中适用于所有可能的用例是另一回事。干净的面向对象设计的原则有时具有一定的学术性质。- 也许还有一点黑白。
\n\n例如,想想谁使用谷歌提供的 Android API:不仅是应用程序开发人员,而且设备制造商也需要为其设备专门提供通用 API。
\n\n所以,对我来说,SW设计在大多数情况下既不是非黑即白,而是非黑即白。灰色阴影很重要。
\n\n最后:在实践中,我很少(读:从来没有final)看到由“不小心”省略关键字(在类上)引起的问题,而未反思的过度使用(通常是由诸如“我的代码太[伟大|丑陋],没有人)final这样的想法引起的实际上会想要通过继承来修改它”)可能会很痛苦。
“我知道我一无所知”似乎适合这里:声称一个人知道其他人关于未来如何使用自己的代码的所有疯狂的、巧妙的、创造性的、聪明的……想法是自以为是的预先。
\n| 归档时间: |
|
| 查看次数: |
349 次 |
| 最近记录: |