摘要:笔者在一家日本企业里面从事软件开发工作。作为一家典型的日本企业,软件开发的流程显然是按着日本的软件工程方式进行的。同样作为一家日企,在很多方面和欧美企业有着截然不同的开发角度。这里想讨论的,就是对review和对test的一些看法日本企业对review是十分看重的。他们认为review是解决bug最好的办法,在开发中甚至会采用过度review的办法。比较典型的是我们开发课长的想法:既然现在在工业生......
摘要:paul hammant 翻译:james shen 摘要 inversion of control (逆向控制) 是一种用来解决模块(实际上也可以是简单的java类)之间依赖关系、配置及生命周期的设计模式,其中对模块依赖关系的处理是ioc的精华部分。 模块依赖 模块之间降低耦合度有以下好处: 增加类的复用程度 使类的测试更加容易 使整个系统更容易组装和配置 说明 运用了ioc模式后我们不需求再自......
《Effective Java》读书笔记系列之三上一页 ... 不要提供任何可以修改对象的方法 确保没有方法能够被覆盖,可以通过把它声明为final 所有字段设计成final 所有字段设计成private 确保外部不能访问到类的可修改的组件不可修改类也有个缺点就是创建不同值得类的时候要创建不同的对象,string就是这样的.通常有个解决的办法就是提供一个帮助类来弥补,例如stringbuffer类.
item 14:化合比继承更值得考虑
item 15:如果要用继承那么设计以及文档都要有质量保证,否则就不要用它 【程序编程相关:客户端源码分析之二: Storage 类】
实现代码重用最重要的办法就是继承,但是继承破坏了封装,导致软件的键壮性不足.如果子类继承了父类,那么它从父类继承的方法就依赖父类的实现,一旦他改变了会导致不可预测的结果.作者介绍了instrumentedhashset作为反例进行说明,原因就是没有明白父类的方法实现.作者给出的解决办法是通过化合来代替继承,用包装类与转发方法来解决问题.把想扩展的类作为本类的一个private final得成员变量.把方法参数传递给这个成员变量并得到返回值.这样做的缺点是这样的类不适合回掉框架.继承虽然好,我们却不应该滥用,只有我们能确定它们之间是is-a得关系的时候才使用. 【推荐阅读:BT客户端源码分析之一:总述】
为了避免继承带来的问题,你必须提供精确的文档来说明覆盖相关方法可能出现的问题.在构造器内千万不要调用可以被覆盖的方法,因为子类覆盖方法的时候会出现问题.import java.util.*;
...
下一页 摘要:前边的程序好用吧,我觉得比书上写的麻烦的程序强多了,所以还是得用工具的。 终于有了点ejb方面的成就,趁热打铁,现在马上就看第三章。 第一章 开发会话bean 大家都知道了,会话bean又分为状态会话bean和无状态会话bean。 书上总结了他们的共同点是: 1. 两者都可实现javax.ejb.sessionbean接口,因此具有相同的容器回调。容器回调?现在中国的翻译啊! 2. 两者都表示生......