设计模式
君莫笑(๑˙ー˙๑)
欢迎互关,一起学习,共同进步
展开
-
门面模式
门面模式( Facade Pattern)又叫外观模式,提供了一个统一的接口,用来访问子系统中的一群接口特征:门面模式定义了一个高层接口,让子系统更容易使用属于结构型模式与代理模式的区别从实现上看,其实就是一种静态代理。但是它的重点在于封装与对外展示。而静态代理,重点在于增强。学设计模式,要看思想,不能只看代码。与单例模式的关系门面模式经常做成单例模式,比如各种工具类。优点1、简化了调用过程,无需深入了解子系统,以防给子系统带来风险2、减少系统依赖、松散耦合(对客户端而言)3、原创 2020-06-04 16:48:12 · 211 阅读 · 0 评论 -
Mybatis 的初始化与建造者模式
目录建造者模式结构角色使用场景与工厂模式的区别建造者模式在Mybatis里的应用Mybatis 的初始化入口XMLConfigBuilderXMLMapperBuilderMapperBuilderAssistant建造者模式建造者模式(Builder Pattern)指的是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。它使用多个简单的对象一步一步构建成一个复杂的对象。...原创 2020-05-04 10:54:46 · 572 阅读 · 0 评论 -
结合 Mybatis 的 cache 包源码理解装饰器模式
目录装饰器模式结构角色优势cache 包里的装饰器模式抽象构件 Cache具体构件 PerpetualCache具体装饰 BlockingCache装饰器模式装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,是一种用于代替继承的技术,无需通过继承增加子类就能扩展对象的新功能。使用对象的关联关系代替继承关系,更加灵活,同时避免类型体系的快速膨胀。结构角色...原创 2020-05-01 21:57:00 · 359 阅读 · 0 评论 -
Mybatis datasource 包里的工厂模式
结构图如图所示,UnpooledDataSourceFactory 生产 UnpooledDataSource,PooledDataSourceFactory 生产 PooledDataSource;UnpooledDataSourceFactory 和 PooledDataSourceFactory 实现了 DataSourceFactory 接口,UnpooledDataSource 和 ...原创 2020-05-01 10:58:00 · 335 阅读 · 0 评论 -
结合 Mybatis 的 logging 包源码理解适配器模式、代理模式
适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Target:目标角色,期待得到的接口.Adaptee:适配者角色,被适配的接口.Adapter:适配器角色,将源接口转换成目标接口.适用场景:当调用双方都不太容易修改的时候,为了复用...原创 2020-04-30 21:49:05 · 255 阅读 · 0 评论 -
代理模式和装饰器模式的区别
区别:代理模式是自己做不了交给别人做,装饰模式是自己做不了变强了再自己做。例子:就好像一个明星,职业技能是唱歌跳舞,但他不会接广告,不会做宣传,他可以自己学习这些技能,然后自己做。但显然不合适,作为一个明星,这些功能并不是他需要具备的。但是他可以找一个经纪人作为自己的代理,帮自己做。...原创 2019-08-25 07:56:34 · 1856 阅读 · 0 评论 -
设计模式的六大原则
单一职责原则:一个类或者一个接口只负责唯一项职责,尽量设计出功能单一的接口依赖倒置原则:高层模块不应该依赖低层模块具体实现,解耦高层与低层。既面向接口编程,当实现发生变化时,只需提供新的实现类,不需要修改高层模块代码开放-封闭原则:程序对外扩展开放,对修改关闭;换句话说,当需求发生变化时,我们可以通过添加新模块来满足新需求,而不是通过修改原来的实现代码来满足新需求迪米特法则:一个对象应该...原创 2019-08-25 08:30:57 · 129 阅读 · 0 评论 -
模板方法模式
模板方法模式同步器的设计基于模板方法模式。模板方法模式的意图是,定义一个操作中的算法的骨架,而将一些步骤的实现延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。我们最常见的就是Spring框架里的各种Template。例子:我们开了个蛋糕店,我们决定先卖奶油蛋糕,芝士蛋糕和慕斯蛋糕。三种蛋糕在制作方式上一样,都包括造型,烘焙和涂抹蛋糕上的东西。所以可以定义...原创 2019-08-05 16:40:41 · 211 阅读 · 0 评论 -
结合I/O讲讲装饰模式(Decorator)
装饰模式(Decorator)简介装饰模式的角色:装饰模式的特点一个简单的例子抽象构件角色(Component):具体构件角色(ConcreteComponent)装饰角色(Decorator)具体装饰角色(ConcreteDecorator1)具体装饰角色(ConcreteDecorator2)客户端(Client)装饰模式VS继承装饰模式的适用性看看I/O中活生生的例子简介装饰模式又名包...原创 2019-07-18 16:53:29 · 281 阅读 · 13 评论