
设计模式
分享最近学习的数据模式
GeeKiller
生命不息,代码不止!
展开
-
03|工厂模式
一、原始类有太多的if-else,语句。package com.geek.jeep.designpattern.factory;/** * @author guchangyuan * 演示工厂模式最原始的代码: * 根据不同的配置文件,选择不同的文件解析器 * 封装变化:创建逻辑有可能变化,封装成工厂类之后,创建逻辑的变更对调用者透明。 * 代码复用:????创建代码抽离到独立的工厂类之后可以复用。 * 隔离复杂性:封装复杂的创建逻辑,调用者无需了解如何创建对象。 * 控原创 2020-08-18 13:43:27 · 144 阅读 · 0 评论 -
05|策略模式
解决什么问题?利用它来避免冗长的 if-else 或者 switch 分支判断。策略模式,全称 Strategy Design Pattern,定义一簇算法类,将每个算法分别封装起来,让它们可以互相替换。策略的定义包含一个策略接口和一组实现接口。因为所有的策略类都实现了相同的接口,所以,客户端代码基于接口而非实现编程,可以灵活的替换不同的策略策略的作用主要还是解耦策略的定义、创建和使用。控制代码的复杂度。让每个部分不至于过于复杂。案例说明1、原始类package com原创 2020-08-18 13:47:47 · 142 阅读 · 0 评论 -
04|建造者模式
一、初始代码当参数变多之后,构造函数会变的及其复杂package com.geek.jeep.designpattern.build;import org.springframework.util.StringUtils;/** * @author guchangyuan * 当参数变多之后,构造函数会变得很复杂,变得及其难用; */public class ResourcePoolConfig { private static final int...原创 2020-08-18 13:46:06 · 125 阅读 · 0 评论 -
02|单例模式
下面通过代码展示单例的4中实现方式一、饿汉式package com.geek.jeep.designpattern.singleton;import java.util.concurrent.atomic.AtomicInteger;/** * @author guchangyuan * 全局唯一类 * 饿汉式创建 * * 构造函数需要是 private 访问权限的,这样才能避免外部通过 new 创建实例; * 考虑对象创建时的线程安全问题; * 考虑是否支持延迟加载; *原创 2020-08-18 13:42:17 · 121 阅读 · 0 评论 -
01|设计模式之初始
设计模式一:初识目标:每天学习一个常用的设计模式创建型:单例模式工厂模式(工厂方法和抽象工厂)建造者模式结构型:代理模式桥接模式装修者模式适配器模式行为型:观察者模式模版模式策略模式责任链模式迭代器模式状态模式总共13个常用设计模式。...原创 2020-08-18 13:41:25 · 123 阅读 · 0 评论