世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的过程。 ——摘自周志明

随笔分类 -  设计模式

摘要:定义:当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。 案例代码: /** * 主题,维护观察列表,新增,删除,接口 */ public class MySubject { private 阅读全文
posted @ 2021-01-17 21:55 白杯与咖啡 阅读(101) 评论(0) 推荐(0)
摘要:属于结构型模式,用于抽象与实现解耦。 例如: JDBC获取数据库连接,是实现桥接模式的典型。参考:JDBC桥接 代码示例 public interface DrawAPI { void drawCircle(int radius, int x, int y); } public class Draw 阅读全文
posted @ 2020-07-05 18:19 白杯与咖啡 阅读(168) 评论(0) 推荐(0)
摘要:场景 当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。 我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。 代码示例 /** * @author Lenovo * @date 2020/7/4 19:25 阅读全文
posted @ 2020-07-04 20:16 白杯与咖啡 阅读(119) 评论(0) 推荐(0)
摘要:##多种实现方式 饿汉式 懒汉式 (DCL必会) 枚举 (自己用推荐) 在多种实现方式下,需要注意多线程环境下线程安全问题。 ###首先,考虑如何确保单例? 1、如果在外部所有人都可以访问单例类的构造器,那就可以直接创建对象,所以构造器私有化。 2、构造器私有化了以后,只有自己可以创建对象,因此需要 阅读全文
posted @ 2020-07-04 16:38 白杯与咖啡 阅读(141) 评论(0) 推荐(0)
摘要:UML类图 参考:UML类图 工厂模式 创建型,用于封装和管理对象的创建。 简单工厂模式 根据传输的参数动态确定创建哪个对象。创建对象的判断逻辑维护在简单工厂内部,当新增新类型对象时需要修改简单工厂代码。 工厂方法模式 由于简单工厂新增类型时,需要修改原有代码,违背开闭原则,所以需要封装变化点,也就 阅读全文
posted @ 2020-07-04 15:27 白杯与咖啡 阅读(128) 评论(0) 推荐(0)
摘要:1、单一职责原则(Single Responsibility Principle) 定义:单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因。 单一职责原则是实现高内聚、低耦合的指导方针;它需要开发人员发现类的不同职责并将其分离。难点就在于怎么分离?那就是如果你能够想到多于一个的动机 阅读全文
posted @ 2020-07-03 11:58 白杯与咖啡 阅读(164) 评论(0) 推荐(0)
摘要:常用设计模拟有:23种,分为三类:创建型,结构型,行为型。所谓设计模式,就是相似问题的一种解决方案。 创建型(是对对象创建过程的各种问题和解决方案的总结) 1、Factory 工厂模式 2、Abstract Factory 抽象工厂模式 3、Singleton 单例模式 4、Builder 构建器模 阅读全文
posted @ 2020-07-03 11:57 白杯与咖啡 阅读(125) 评论(0) 推荐(0)