使用Groovy语法糖的时候,可以验证最终生成的代码
@Singleton(lazy = true)
class TheUnique {
private TheUnique() {
println 'instance created!'}
def hello() {
println 'hello'}
}
// 务必要加上这句触发单例的使用,groovy才会在生成的代码使用单例
TheUnique.instance.hello()

- 生成的代码:
@groovy.lang.Singleton(lazy = true)
public class TheUnique extends java.lang.Object {
private static volatile TheUnique instance
@groovy.transform.Generated
private TheUnique() {
if (instance != null) {
throw new java.lang

本文探讨了Groovy中的Singleton注解和契约式设计的概念。通过一个示例展示了Groovy如何使用语法糖创建单例,并对比了契约式设计与能力式设计的优缺点。契约式设计强调接口拓展,而能力式设计则注重减少接口定义,聚焦业务逻辑。文章还通过实际代码展示了这两种设计模式的应用。
最低0.47元/天 解锁文章
933

被折叠的 条评论
为什么被折叠?



