
设计模式
水墨之白
悟已往之不谏,知来者之可追!
展开
-
理解设计模式—抽象工厂模式
一、简单工厂模式 定义: 专门定义一个类用来负责创建其他类的实例,被创建的类通常具有共同的父类(没有也行) //产品类: public interface Product { void hasFeature(); } //继承产品的子类A产品 public class ProductA implements Product { public void hasFeature()...原创 2019-03-09 15:21:26 · 158 阅读 · 0 评论 -
理解设计模式—单例模式
定义: 确保要创建的类只有一个实例 对于频繁创建的对象,可以省略其创建时间,同时可以减轻GC的压力 避免对共享资源的多重占用 使用场景: 网站的计数器,一般也是采用单例模式实现,否则难以同步 应用程序的日志应用,一般都何用单例模式实现,这一般是由于共享的日志文件一直处于打开状态,因为只能有一个实例去操作,否则内容不好追加 Windows的任务管理器 单例模式写法很多,这里列举以下三种: 1...原创 2019-04-24 21:29:22 · 181 阅读 · 0 评论 -
UML类之间关系
UML类之间的关系 泛化(继承) 用来描述继承关系,在 Java 中使用 extends 关键字 实现 用来实现一个接口,在 Java 中使用 implements 关键字 聚合 聚合表示一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形 + 实线箭头来表示。大雁和雁群 组合 组合是一种强的拥有关系,体现了严格的部分和整体的关系,部分和整体的生命...原创 2019-06-05 17:23:26 · 189 阅读 · 0 评论 -
理解设计模式—模板方法与AQS
定义:封装一个模板结构,将具体内容延迟到子类去实现 将多个类共有的方法和功能抽取出来,封装到抽象类,对于这些公有方法(模板方法)使用final修饰,需要通过子类扩张的定义成抽象(abstract)方法,有子类实现其自有特性。 JDK AQS 抽象队列同步器就是一个构建锁和同步器的模板,使用它可以构建ReentrantLock(独占型),CountDownLacth(共享型),Semaphore(共...原创 2019-07-10 16:05:06 · 1400 阅读 · 0 评论 -
理解设计模式—适配器模式
一、简介 适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式 使用场景 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有...原创 2019-08-18 17:44:39 · 156 阅读 · 0 评论 -
理解设计模式—建造者模式
一、简介 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,将这个对象的创建交给其它对象。建造者模式是一种对象创建型模式 建造者模式定义了一个新的类来构建另一个类的实例,以简化复杂对象的创建 二、模式结构 抽象建造者(builder): 接口或者抽象类,定义对象组件建造方法和返回具体对象 实际建造者(concreteBuilder): 实现builder 管理者(d...原创 2019-08-15 13:59:50 · 213 阅读 · 0 评论