世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。 ——摘自周志明
摘要: 场景 当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。 我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。 代码示例 /** * @author Lenovo * @date 2020/7/4 19:25 阅读全文
posted @ 2020-07-04 20:16 白杯与咖啡 阅读(110) 评论(0) 推荐(0) 编辑
摘要: ##多种实现方式 饿汉式 懒汉式 (DCL必会) 枚举 (自己用推荐) 在多种实现方式下,需要注意多线程环境下线程安全问题。 ###首先,考虑如何确保单例? 1、如果在外部所有人都可以访问单例类的构造器,那就可以直接创建对象,所以构造器私有化。 2、构造器私有化了以后,只有自己可以创建对象,因此需要 阅读全文
posted @ 2020-07-04 16:38 白杯与咖啡 阅读(133) 评论(0) 推荐(0) 编辑
摘要: UML类图 参考:UML类图 工厂模式 创建型,用于封装和管理对象的创建。 简单工厂模式 根据传输的参数动态确定创建哪个对象。创建对象的判断逻辑维护在简单工厂内部,当新增新类型对象时需要修改简单工厂代码。 工厂方法模式 由于简单工厂新增类型时,需要修改原有代码,违背开闭原则,所以需要封装变化点,也就 阅读全文
posted @ 2020-07-04 15:27 白杯与咖啡 阅读(114) 评论(0) 推荐(0) 编辑