DESIGN
hy_coming
不忘初心 方得始终
展开
-
【设计模式】——总结
前面已经写了25篇,其中一篇前言和一篇简单工厂模式不属于真正的设计模式,所以总的设计模式为23种,鉴于之前没有画UML图,这里就一并总结下吧(图是从别人哪里拿过来的,懒得画了)1、创建型设计模式 单例模式模式 工厂模式模式 抽象工厂模式 建造者模式 原型模式 2、结构型设计模式 适配器模式 装饰模式 ...原创 2020-01-05 11:47:51 · 142 阅读 · 0 评论 -
【设计模式】——访问者模式(25)
一、定义访问者模式表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下作用于这些元素的新操作。二、框架运用JDK中的FileVisitor,Spring中的BeanDefinitionVisitor三、实战1、visitorpublic interface Visitor { void visitConcreteElementA(Conc...原创 2020-01-01 12:56:11 · 142 阅读 · 0 评论 -
【设计模式】——解释器模式(24)
一、定义解释器模式就是给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。二、框架运用正则表达式、浏览器就是对解释器模式做好的诠释三、实战1、实体类@Datapublic class Context { private String name; private Integer age;}2、解释类p...原创 2019-12-29 14:02:20 · 137 阅读 · 0 评论 -
【设计模式】——享元模式(23)
一、定义享元模式就是运用共享技术有效的支持大量细粒度的对象。二、框架运用String中的享元模式三、实战1、实现类public abstract class WebSite { protected String name; public WebSite(String name) { this.name = name; } ...原创 2019-12-22 17:09:30 · 125 阅读 · 0 评论 -
【设计模式】——中介者模式(22)
一、定义中介者模式用一个中介对象来封装一些列的对象交互。二、框架运用java.util.Timer中就使用了中介者模式的思想三、实战1、执行类public abstract class AbstractClass { protected Mediator mediator; public AbstractClass(Mediator mediator) ...原创 2019-12-21 13:25:47 · 152 阅读 · 0 评论 -
【设计模式】——职责链模式(21)
一、定义职责链模式使多个对象都有机会处理,从而避免请求的发送者和接受者之间的耦合关系。将这个对象形成一条链,直到有一个对象处理他为止。二、框架运用过滤器就是运用的职责链的设计思路三、实战1、抽象父类public abstract class Manager { private String name; protected Manager superMa...原创 2019-12-20 20:40:01 · 144 阅读 · 0 评论 -
【设计模式】——命令模式(20)
一、定义命令模式就是将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化,对请求排列或者记录请求日志,以及支持可撤销的操作。二、框架运用tomcat作为一个服务器本身会接受外部大量请求,当一个请求过来后tomcat根据域名去找对应的host,找到host后会根据应用名去找具体的context(应用),然后具体应用处理请求。对于具体host来说他不关心这个请求是谁给的,对应请...原创 2019-12-15 12:06:00 · 138 阅读 · 0 评论 -
【设计模式】——桥接模式(19)
一、定义桥接模式就是将抽象部分它的实现部分分离,使他们可以独立的变化。二、框架运用JDBC是以统一方式访问数据库的API。三、实战1、被桥接类public interface Implementor { void operation();}public class ImplementorA implements Implementor { @Over...原创 2019-12-14 16:35:46 · 167 阅读 · 0 评论 -
【设计模式】——单例模式(18)
一、定义单例模式保证一个类仅有一个实例,并提供它的一个全局访问方法。二、框架运用Spring中Bean的初始化默认就是就是单例的,如果需要多个,是可以设置的。在想这个模式之前首先需要知道我们为什么需要单例模式?对Java来说创建一个实例就是new一个对象,如果一个对象不停的被new那么会出现什么?耗资源,严重的耗资源,如果这个对象第二次用的时候还没有销毁直接使用就好了,这是我们考虑...原创 2019-12-08 15:39:36 · 115 阅读 · 0 评论 -
【设计模式】——迭代器模式(17)
一、定义1.访问一个聚合对象的内容而无需暴露它的内部表示。2.支持对聚合对象的多种遍历。3.为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代)。二、框架运用迭代器模式早在Spring中就要使用,有自己的接口类Iterator三、实战1、迭代器接口和实现public interface MyIterator { Object first(); ...原创 2019-12-07 12:38:48 · 117 阅读 · 0 评论 -
【设计模式】——组合模式(16)
一、定义组合模式将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。二、框架运用springMVC通过组合模式,使得用户或者说框架本身在进行配置时,就通过操作WebMvcConfigurer类及其衍生类这个整体就行了三、实战1、抽象类public abstract class Component { prote...原创 2019-11-30 11:56:42 · 187 阅读 · 0 评论 -
【设计模式】——备忘录模式(15)
一、定义备忘录模式就是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。二、框架运用(场景)浏览器的回退功能、棋牌类游戏中的反悔功能,但是缺点就是如果存储的数据量大,就会很大的消耗资源内存。三、实战1、发起人public class Origination { private String st...原创 2019-11-24 11:38:46 · 117 阅读 · 0 评论 -
【设计模式】——适配器模式(14)
一、定义适配器模式就是将一个类的接口装换成客户希望的另外一个接口。二、框架运用springMVC核心代码在于DispatcherServlet类中的doDispatch方法,该方法完成的功能是会根据传入的Controller类型执行相应的方法返回modelView对象。三、实战1、实体类public interface Company { void show();...原创 2019-11-23 12:02:37 · 128 阅读 · 0 评论 -
【设计模式】——状态模式(13)
一、定义状态模式就是当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。二、框架运用当一个对象的行为必须取决于他的状态,并且他运行时刻根据状态改变他的行为时,就可以考虑使用状态模式了三、实战1、基本类public interface State { void handle(Context context);}public class S...原创 2019-11-10 12:47:10 · 106 阅读 · 0 评论 -
【设计模式】——抽象工厂模式(12)
一、定义抽象工厂模式提供一个创建一系列相关或相互依赖的接口,而无需指定他们他们具体的类。二、框架运用Spring中bean的获取三、实战1、接口、实现类public interface IProduct { void product();}@Componentpublic class ProductA implements IProduct { @...原创 2019-11-09 15:04:47 · 153 阅读 · 0 评论 -
【设计模式】——观察者模式(11)
一、定义观察者模式定义了一种一对多的依赖关系,让多个观察者同时监听某一个主题对象,这个主题对象在状态发生变化时会通知所有观察者对象,使他们能够更新自己。二、框架运用现实中我们监听MQ消息并消费的模式使用的就是观察者模式三、实战1、观察者public interface Observer { void update();}public class Concre...原创 2019-11-03 12:32:38 · 166 阅读 · 0 评论 -
【设计模式】——建造者模式(10)
一、定义建造者模式将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示。二、框架运用HttpClient框架在构建Client时就用到了建造者模式三、实战1、产品类public class Product { private List<String> parts = new ArrayList<>(); pub...原创 2019-11-02 12:22:24 · 129 阅读 · 0 评论 -
【设计模式】——简单工厂模式(2)
一、定义虽然不属于23中设计模式中的一种,但是却是各种工厂模式的基础,就是由一个工厂对象决定创建哪一个产品,其实运用的多态的一种思想。二、框架运用spring中的创建bean就是运用的工厂模式,需要根据不同的对象创建不同的对象实例。三、实战1.接口Productpublic interface Product { void product();}2.实现类T...原创 2019-05-04 22:00:57 · 364 阅读 · 0 评论 -
【设计模式】——策略模式(3)
一、定义策略模式就是定义一系列算法的方法,从概念上来说,所有这些算法完成的都是相同的工作,只是实现不同,他可以以相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。二、框架运用spring中ApplicationContext 实例的 getResource() 就是使用的策略模式三、实战1、策略接口类public interface Strategy { ...原创 2019-10-02 15:55:57 · 123 阅读 · 0 评论 -
【设计模式】——装饰模式(4)
一、定义装饰模式就是为已有的功能动态的添加更多功能的一种方式。二、框架运用spring中ApplicationContext 中配置所有的 DataSource就是使用装饰模式三、实战1、接口public interface Component { void Operation();}2、具体的对象public class ConcreteCompone...原创 2019-10-03 17:51:40 · 109 阅读 · 0 评论 -
【设计模式】——代理模式(5)
一、定义代理模式为其他对象提供一种代理以控制对这个对象的访问。二、框架运用Spring的AOP动态代理是用的代理模式三、实战1、抽象父类public abstract class Subject { public abstract void request();}2、真实类public class RealSubject extends Subject...原创 2019-10-04 12:32:02 · 122 阅读 · 0 评论 -
【设计模式】——工厂方法模式(6)
一、定义工厂方法模式定义一个创建对象的接口,让子类决定实例化那个类。二、框架运用Java Collection中的iterator() 方法三、实战1、产品类public interface Product { void product();}public class TechProduct implements Product { @Overri...原创 2019-10-05 15:24:49 · 95 阅读 · 0 评论 -
【设计模式】——原型模式(7)
一、定义原型模式就是制定创建对象的种类,并且拷贝这些原型创建新的对象。二、框架运用Object 类中的 clone 接口三、实战1、子类public class WorkExperience implements Cloneable { private String workDate; private String company; public...原创 2019-10-06 14:56:35 · 115 阅读 · 0 评论 -
【设计模式】——模板方法模式(8)
一、定义模板方法模式是的子类不改变一个算法的机构即可重定义该算法的某些特定步骤二、框架运用Spring IOC容器初始化时运用到的模板方法模式三、实战1、抽象类public abstract class AbstractClass { public abstract void shuchuStart(); public abstract void shuc...原创 2019-10-06 15:20:48 · 96 阅读 · 0 评论 -
【设计模式】——外观模式(9)
一、定义外观模式为子系统中的一组接口提供一个一致的界面,其实就是提供一个高层接口,方便别人的调用。二、框架运用spring jdbc中的外观模式(org.springframework.jdbc.support.JdbcUtils),Mybatis中的外观模式(org.apache.ibatis.session.Configuration)三、实战1、子系统类public...原创 2019-10-07 12:46:39 · 157 阅读 · 0 评论 -
【设计模式】——前言(1)
一、背景这篇专栏申请的时间应该是去年就已经申请了的,但是由于一直忙着别的事情,也就没有时间来更新这个专栏,其实这也是自己第一次写专栏,说实话也不知道从哪里写好,自己也没有一个很好的写的思路,其实直到现在这一刻还是没有,但是这样一直拖着也不是事,所以还是一边想,一边写吧,想到哪里算哪里,写到哪里算哪里吧,本来写作就应该是一件轻松的事,如果想的太多反而拘谨不好,废话不多说,干起来。二、理解...原创 2019-05-04 21:07:04 · 289 阅读 · 0 评论