引子 平时我是个反应非常慢的人.有多慢呢?大概是两年前有次团队内部开会时,我听到同学说平时代码中用不到设计模式,我当时没有回答.两年后我终于反应过来了:“Are you kidding me?我每天都在用!” 应用场景 建造者模式 写一个接口,入参是一大堆,什么都有.这是长期积累下来的代码,参数都提供给外部用了.只能做加法,不能做减法.这时候接口就这样了,内部能不能好看点呢? 可以啊,重构,留壳抠瓤啊! 这一堆参数可以封装成一个有意义的类,再往下传递处理.这时候就用到了建造者模式,对参数进行封装…
原文:OGRE中用到的设计模式 1.       单例模式(Singleton) 2.       工厂方法(Factory Method)  3.       适配器模式(Adapter)  4.       桥接模式(Bridge)  5.       职责链模式(Chain of Responsibility)  6.       迭代器模式(Iterator) Ogre::VectorIterator< T > Ogre::MapIterator< T > Ogre::Co…
第八章第三节 代码调优的设计模式和I/O 本节学习如何通过对代码的修改,消除性能瓶颈,提高系统性能?——代码调优.面向性 能的设计模式 Outline Java调优 代码调优的概念 单例模式(Singleton Pattern) 享元模式(Flyweight Pattern) 原型模式(Prototype Pattern) 对象池模式(Object Pool Pattern) 常见的Java I/O方法 Notes ## 代码调优 [代码调优的概念] 代码调优:代码调优不是为了修复bug,而是对…
1 简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定.如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean. <beans> <bean id="…
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆. Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.好了,话不多说,开始今天的内容. spring中常用的设计模式达到九种,我们举例说明: 第一种:简单工厂 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. spring中的B…
1.简单工厂 又叫静态工厂方法模式,不属于23种设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是是否在传入参数后创建还是传入参数前创建这个要根据具体情况来定. 2.工厂方法 定义一个用于创建对象的接口,让子类决定去实例化哪一个类.Factory Method使一个类的实例化延迟到子类 Spring中的FactoryBean就是典型的工厂方法模…
一:简单工厂模式 又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一. 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类. spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定.如下配置,就是在 HelloItxxz 类中创建一个 itxxzBean. 二:工厂方法模式 通常由应用程序直接使用new创建新…
设计模式无处不在,因为它就来自于我们的日常生活,提炼于生活经验. 正握在你手中的手机,不能用220V的电压直接充电,需要一个专门的电源适配器(充电器)才行.摆在你桌上的电脑也是一样的,都需要"适配".而 适配器模式 (Adapter Pattern)正是由此总结而来. 从一个问题出发,为什么Spring这么牛? Spring 发展到今天,在Java开发中的地位毋庸置疑.人人都在用Spring,80%的开发者学完Java 就得学习Spring了.那Spring为啥这么牛呢?其中肯定很大一…
Mybatis中用到至少用到以下设计模式, Builder模式,例如SqlSessionFactoryBuilder.XMLConfigBuilder.XMLMapperBuilder.XMLStatementBuilder.CacheBuilder: 工厂模式,例如SqlSessionFactory.ObjectFactory.MapperProxyFactory: 单例模式,例如ErrorContext和LogFactory: 代理模式,Mybatis实现的核心,比如MapperProxy.…
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了: 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了: 3.代理模式,在Aop实现中用到了JDK的动态代理: 4.单例模式,这个比如在创建bean的时候. 5.Tomcat中有很多场景都使用到了外观模式,因为Tomcat中有很多不同的组件,每个组件需要相互通信,但又不能将自己内部数据过多地暴露给其他组件.用外观模式隔离数据是个…