
设计模式
平静不绝望
ALOHA HEJA HE
-
原创 【Spring】Bean的创建和对象关系建立
1 Bean的创建时序图2 Bean对象关系创建3 UML 图4 入口点org.springframework.context.support.AbstractApplicationContext#refreshorg.springframework.context.support.AbstractApplicationContext#finishBeanFact...2019-12-15 10:58:2270
0
-
原创 【Spring 设计模式】AOP中涉及到的策略模式
JdkDynamicAopProxy 和 Advised 接口有关系,体现在Advised的子类AdvisedSupport!2019-12-15 10:21:47100
0
-
原创 【@InitBinder】spring 自定义属性编辑器
1 使用步骤 A 扩展点 Controller中增加 @InitBinder @Override public void initBinder(WebDataBinder binder) { super.initBinder(binder); // http post 请求中属性变量的自定义编辑器 binder.r...2019-10-31 08:45:45138
0
-
原创 【设计模式】--SINGLETON模式
SINGLETON模式: 1 访问都是通过公有的静态方法Instance访问。 2 Singleton类没有公有的构造函数。实现:public class Demo2 { public static void main(String[] args) { ExecutorService pool = Executors.newCach2017-11-05 11:47:50189
0
-
原创 【设计模式】--TEMPLATE METHOD 模式 和 STRATEGY 模式 :继承和委托
简介:template method模式使用的是继承,把公用的方法抽象到1个抽象的基类中;子类去实现抽象的方法;strategy 模式使用的是接口+组合,把公用的算法,放到runner (worker)类中;UML见简图:【ApplicationRunner(算法的聚合)】---->【《interface》 Application】strategy模式代价:涉及更多数量2017-11-05 17:10:32173
0
-
原创 【设计模式】--MEDIATOR 模式(老张)
JDK中的实例:QuickEntryMediator QuickEntryMediator 结构使用JList和JTextField构造了一个QuickEntryMediator类实例,QuickEntryMediator向JTextField注册了一个匿名的DocumentListener,每当文本变动时,listener就会调用textFieldChanged方法,该方法会在JLi2017-11-05 16:24:43181
0
-
原创 【设计模式】--FACADE模式
目的:把某种策略施加到另外一组对象上。效果:将一组如java.sql包含的全面性和复杂性隐藏在一个简单且特定的接口后面;参考UML图如下: 参考:博客http://blog.csdn.net/duchao123duchao/article/details/514250852017-11-05 16:11:26176
0
-
原创 【设计模式】--NULL OBJECT 模式
1 丑陋的代码: Employee e = DB.getEmployee("Tom"); if(e!=null && e.isTimeToPay(today))//丑陋且容易出错 e.pay();2 一个优化的方法: DB.getEmployee 抛出一个异常 但是try/catch更加丑陋,而且要声明这些异常。3 怎么办?看示例理解publi2017-11-05 14:34:36160
0
-
原创 【设计模式】--MONOSTATE模式
1 gingleton 单例模式 -->饿汉模式 实现创建实例 懒汉模式是使用时创建,关注行为2 monostate 模式 关注结构;3 示例class Monostate{ private static int itsX = 0; public Monostate(){ } public static int getItsX() {2017-11-05 14:09:09343
0
-
原创 设计模式--observer(316)
模式原型:实例:public interface Observer { public abstract void update(NumberGenerator numberGenerator);}public abstract class NumberGenerator { private ArrayList observers = new2017-09-08 14:40:05188
0
-
原创 面试--单例模式(75)
1 直接初始化public class Singleton { /** 单例变量 ,static的,在类加载时进行初始化一次,保证线程安全 */ private static Singleton instance = new Singleton(); /** * 私有化的构造方法,保证外部的类不能通过构造器来实例化。 */ private2017-01-10 00:09:28245
0
-
原创 Strategy模式
Strategy模式 1 关系依赖 public class StrategyContext{ private Map2016-06-14 14:03:49297
0
-
原创 设计模式 --代理(46)
tomcat中的 设计模式–代理模式 Lifecycle接口 提供生命周期管理,并使用了LifecycleSupport接口,来实现对事件的发送,发送给其他组件容器。2016-12-10 15:43:45221
0