摘要: 命名模式的缺点有以下三点:(在第 4 版之前,JUnit 测试框架要求其用户通过以 test[Beck04] 开始名称来指定测试方法) 1.拼写错误导致失败,但不会提示。 2.无法确保它们仅用于适当的程序元素。 3.它们没有提供将参数值与程序元素相关联的好的方法。 下面以Junit4为例来说明注解的 阅读全文
posted @ 2019-09-29 11:53 Eden-programmer 阅读(153) 评论(0) 推荐(0)
摘要: 枚举类型( BasicOperation )不可扩展,但接口类型( Operation )是可以扩展的,并且它是用于表示 API 中的操作的接口类型。 or 下面的方法灵活一点:它允许调用者将多个实现类型的操作组合在一起,另一方面,也放弃了在指定操作上使用 EnumSet 和 EnumMap 的能力 阅读全文
posted @ 2019-09-29 11:36 Eden-programmer 阅读(158) 评论(0) 推荐(0)
摘要: 永远不要从枚举的序号中得出与它相关的值; 请将其保存在实例属性中: 阅读全文
posted @ 2019-09-26 14:38 Eden-programmer 阅读(132) 评论(0) 推荐(0)
摘要: 1.要将数据与枚举常量相关联,请声明实例属性并编写一个构造方法,构造方法带有数据并将数据保存在属性中。 // Enum type with data and behavior public enum Planet { MERCURY(3.302e+23, 2.439e6), VENUS (4.869 阅读全文
posted @ 2019-09-26 14:21 Eden-programmer 阅读(368) 评论(0) 推荐(0)
摘要: 在你的 API 中使用通配符类型,虽然棘手,但使得 API 更加灵活。 如果编写一个将被广泛使用的类库,正确使用通配符类型应该被认为是强制性的。 记住基本规则: producer-extends, consumer-super(PECS)。 还要记住,所有 Comparable 和 Comparat 阅读全文
posted @ 2019-09-25 21:08 Eden-programmer 阅读(118) 评论(0) 推荐(0)
摘要: 泛型类型比需要在客户端代码中强制转换的类型更安全,更易于使用。 当你设计新的类型时,确保它们可以在没有这种强制转换的情况下使用。 这通常意味着使类型泛型化。 如果你有任何现有的类型,应该是泛型的但实际上却不是,那么把它们泛型化。 这使这些类型的新用户的使用更容易,而不会破坏现有的客户端。 像泛型类型 阅读全文
posted @ 2019-09-25 21:06 Eden-programmer 阅读(151) 评论(0) 推荐(0)
摘要: 使用静态方法的优点: 1.它们是有名字的,生成的客户端代码更易阅读。 如:返回素数的静态方法 BigInteger.probablePrime 2.与构造方法不同,它们不需要每次调用时都创建一个对象。 3.与构造方法不同,它们可以返回类型的任何子类型的对象。 4.返回对象的类可以根据输入参数的不同而 阅读全文
posted @ 2019-09-17 21:24 Eden-programmer 阅读(148) 评论(0) 推荐(0)