avatar
三论abstract class# Java - 爪哇娇娃
z*3
1
这个问题是我在实际工作中遇到的
关于singleton pattern
当然也关于abstract class
java1.5之后,singleton有一个非常容易的实现
public enum Singleton{
INSTANCE;
}
这样做有一个限制
如果你对enum了解的话
会发现
enum不支持extends class
但是支持implements interface
所以如果你按照我之前说的,坚决淘汰掉abstract class
只用一层继承,也就是所有的class都implements interface在你的工作中的话
你把以前的singleton class改造成1.5+以上版本的singleton
会非常轻松,而且是完全可行的
但是如果你不这么做的话
那……
写代码是一门艺术,很多人不理解代码的美感
java的美在于它的结构
avatar
z*3
2
真正的结构上的美要从包结构上入手
而不是从类这个层次入手解决
整体结构就应该划分清楚
而不是等到类这个层次再来切割
那就很痛苦了
所以整个软件工程就是从大而小的切割
而不是在最低一层也就是类层面上的切割
通俗点说就是先component diagram
再class diagram,结构应该是先总体后部分
enum是第一个坚决淘汰abstract class机制的api
如果说以前的api是还隐晦地表达对abstract class的不满
比如servlet, struts等使用abstract class的框架逐步被市场所淘汰
或被其它不需要严格继承的框架所替换
使得用户有更大的灵活性
还有很多api可以用abstract class全部具体化,以满足你不愿意继承的需要
的话
那么enum的出现,则是明确地拒绝你使用这种半实现的机制
看api的变迁足够感觉出这个趋势了
你写的那些代码再重要能比enum这个关键字更重要?
哼哼
下班咯,走人
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。