会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
nepkacc
博客园
首页
新随笔
联系
订阅
管理
2020年12月18日
Item 5: Prefer dependency injection to hardwiring resources.
摘要: 推荐使用依赖注入而不是硬装配资源。 静态工具类和单例不适用于有底层资源参数化的类。 依赖注入模式适用于构造函数、静态工厂(使用Supplier)以及Builder。项目依赖项过多请使用DI框架,如spring。 总之,创建它们的资源或工厂传递给上述三种适用模式。
阅读全文
posted @ 2020-12-18 19:12 reisen_xu
阅读(71)
评论(0)
推荐(0)
2020年12月17日
Item 4: Enforce noninstantiability with a private constructor.
摘要: 令构造函数私有化来实现不可变类 通常有一些类不是为产生实例而设计的,这些类被称作不可变类(immutable class)。 首先,不建议使用abstract让类成为抽象类,虽然这达成了目的,但是可能会给人一种这种类是被继承而设计的,同时,它的子类是可以实例化的。 推荐构造函数私有化来防止类被实例化
阅读全文
posted @ 2020-12-17 18:59 reisen_xu
阅读(85)
评论(0)
推荐(0)
Item3:Enforce the singleton property with a private constructor or an enum type.
摘要: 单例是一个只实例化一次的类,通常用来表示无状态对象,但注意,将一个类设计为单例会使它的客户端测试变得困难。 实现单例有两种方法,通过构造函数私有化或通过枚举类。 一、构造函数私有化: 1.通过构造函数创建实例 public class Elvis { public static final Elvi
阅读全文
posted @ 2020-12-17 18:48 reisen_xu
阅读(105)
评论(0)
推荐(0)
2020年12月15日
Item 2: Consider a builder when faced with many constructor parameters.
摘要: 场景1:当一个对象有多个参数需要初始化,分为必需参数和可选参数 方法一: 通过对构造函数进行重载来匹配不同情况,但此操作仅适用于参数较少的情况,在有很多参数的情况下,大大降低了代码可读性和健壮性。 方法二: 使用JavaBean模式,该模式下,调用无参构造函数来创建对象,随后通过setter方法来设
阅读全文
posted @ 2020-12-15 14:52 reisen_xu
阅读(119)
评论(2)
推荐(0)
2020年12月14日
Item1: Consider static factory methods instead of constructors.
摘要: 一、静态工厂方法的好处 1.有确切名称 BigInteger.problePrime() 能够看到,由于使用了静态工厂而非构造函数,其方法名称能够更加灵活,可以依此快速地明白其作用。 同时,通过重载来区分不同的构造函数可能不是一个好的方法,这可能会对使用者造成混乱。 2.不需要在每次调用时创建新对象
阅读全文
posted @ 2020-12-14 20:58 reisen_xu
阅读(88)
评论(1)
推荐(0)
2020年11月4日
Mybatis关于foreach中使用Map的小记
摘要: 1.标签中collection的名称默认为_parameter,在使用@Param注解后为注解中的内容 2.一个例子,要在where id = ...中单独取出Map中的id,可以使用.运算符,例如 id=#
阅读全文
posted @ 2020-11-04 22:24 reisen_xu
阅读(211)
评论(0)
推荐(0)
2020年11月3日
浅析mybatis中Mapper配置文件位置(IDEA&MAVEN)
摘要: mapper与接口在同一package下 使用基于Maven的构建工具后,不会将java下的非java代码类型文件输出至target,因此应配置Maven中的build标签,使其xxxMapper.xml可以被扫描 <resources> <resource> <directory>src/main
阅读全文
posted @ 2020-11-03 23:09 reisen_xu
阅读(1025)
评论(0)
推荐(1)
公告