本站首页    管理页面    写新日志    退出


«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


公告
暂无公告...

我的分类(专题)

日志更新

最新评论

留言板

链接


Blog信息
blog名称:
日志总数:8
评论数量:19
留言数量:0
访问次数:69864
建立时间:2006年8月1日




[Java]Java设计模式之抽象类
读书笔记,  软件技术

爱睡觉的猫 发表于 2006/8/3 15:05:59

1.什么是抽象类 抽象类提供一个类型的部分实现,可以有实例变量,构造方法,抽象方法和具体方法。一个抽象类不会有实例。抽象类跟具体类是蛋跟鸡的关系:蛋决定了鸡的性状,鸡是蛋的具体实现。 2.抽象类的用途 抽象类通常代表一个抽象概念,可以用一句话来概括抽象类的用途:抽象类是用来继承的。反过来可以说具体类不是用来继承的,只要有可能,我们不要从具体类继承。 3.抽象类设计使用的原则 在设计抽象类时我们应注意这几条原则: 1)抽象类应尽可能多地拥有具体类公共的代码,这样做可以提高代码的重用性。我们应针对抽象编程,也就是说我们应该把注意力放在“蛋”上。 2)抽象类应尽可能少地拥有数据,数据应尽量放在具体类中。 4.什么时候才应该使用继承复用 继承代表“一般化/特殊化”关系,其中基类代表一般,而衍生类代表特殊,衍生类将基类特殊化或扩展化。只有当以下的Code条件满足时才应当使用继承关系 1)子类是超类的一个特殊种类,而不是超类的一个角色,也就是应当区别IS-A和Has-A。 2)永远不会出现需要将子类换成另一个类的子类的情况,如果不能肯定一个类在将来会不会成为另一个类的子类,就不要把这个类设计成当前超类的子类 3)子类的责任是扩展超类,而不是Override和Nullify超类。如果子类需要大量地置换超类的行为,就说明子类跟超类的行为差别很大,不存在继承关系。 4)只有在分类学上角度看有意义时,才可以使用继承,不要从工具类继承。举个例子:包装商业规则的类不要去继承数据库管理的类,这样也许会让你很方便地让子类具有数据处理的方法,可是这滥用了继承关系  


阅读全文(3990) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.174 second(s), page refreshed 144760845 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号