Agile java 第三章小结

第三章 小结。
优化类:
避免使用, 这样降低了性能。String b=new String(“abc”);
但线程中使用StringBuilder,多线程使用StringBuffer


OO 类:
面向对象有一个最基本的设计原则:一个类只做好一件事情。由于只做一件事情,所以改变类应该只有一个动机。这就是单职责原则。
典型的组织包的方法是:分离用户接口类和表示业务逻辑的底层代码。用户接口负责与最终用户的交互。
尽可能的保护您的代码。只在必要的时候,放开访问控制。

重构类:
有一种方法可以防止重复发生:只要意识到可能正在引入重复的代码,马上进行必要的重构以避免潜在的重复。
以较小的步伐,增量构建系统的测试和代码。如果发现问题,放弃导致问题的增量代码,以更小的步伐重新开始。


方法类:
测试类放在哪里?
测试类和生产类同放在一个包中。这样做的好处:测试类可以获得被测试类在包级别的所有细节。依然可以有机会对没有设置public的类进行断言。
对于此,可以采用eclipse,创建一个source folder(源文件包),并创建相同的包名,即可以实现这样的要求。(物理上,将源代码与测试代码分开,在编译运行时,可以获取到放置在同一个包中的资源)
总的来说,您应该为每一个包创建一个测试套件,以此保证所有的类都经过测试。
包中测试套件,应该如下:(eclipse可以自动生成)
TestSuite suite = new TestSuite(AllTests.class.getName());
// $JUnit-BEGIN$
suite.addTestSuite(RosterRepoterTest.class);
// $JUnit-END$
return suite;
总的测试套件,应该如下:(eclipse无法自动生成)
TestSuite suite = new TestSuite(AllTests.class.getName());
// $JUnit-BEGIN$
suite.addTest(lesson3.report.AllTests.suite());
suite.addTest(lesson3.studentinfo.AllTests.suite());
// $JUnit-END$
return suite;

工具类:
使用Ant。
这个是在eclipse下的ant的build.xml文件。需要注意的是相对于basedir来说,下面的文件夹不用以”\”开头.
如果不再命令行下使用ant,可以不用下载ant包。Eclipse可以运行build.xml文件。
<?xml version="1.0"?>

<project name="agileJava" default="junitgui" basedir=".">
<property name="junitJar" value="lib\junit.jar" />
<property name="src.dir" value="${basedir}\src"/>
<property name="build.dir" value="${basedir}\bin"/>

<path id="classpath">
<pathelement location="${junitJar}"/>
<pathelement location="${build.dir}"/>
</path>

<target name="init">
<mkdir dir="${build.dir}"/>
</target>

<target name="build" depends="init" description="build all">
<javac srcdir="${src.dir}" destdir="${build.dir}" source="1.6"
deprecation="on" debug="on" optimize="off" includes="**">
<classpath refid="classpath"></classpath>
</javac>
</target>

<target name="junitgui" depends="build" description="run junit gui">
<java classname="junit.awtui.TestRunner" fork="yes">
<classpath refid="classpath"/>
<arg value="lesson3.AllTests"/>
</java>
</target>

<target name="clean">
<delete dir="${build.dir}"></delete>
</target>

<target name="rebuildall" depends="clean,build" description="rebuild all">
</target>
</project>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值