设计模式
九月的小海
这个作者很懒,什么都没留下…
展开
-
设计模式:Logback中的工厂方法
简介如果创建某个对象需要大量重复代码,应用层不关注这个对象的创建细节,创建对象的过程可以推迟到子类实现,那么可以考虑使用工厂方法。工厂模式是通过简单工厂演化而来,与简单工厂相比,在加入新产品时符合开闭原则,扩展性更高。然而每增加一种产品,都需要创建对应的工厂类,会导致类数量过多,增加系统的复杂度。但这种基于产品和工厂的多态性设计,正是工厂方法的关键。举例继续我们在简单工厂中教学视频的例子。其...原创 2019-03-09 00:55:51 · 506 阅读 · 0 评论 -
设计模式:MyBatis中的抽象工厂
简介介绍抽象工厂之前,需要先介绍两个概念:产品族和产品等级。产品族是指同一主题的产品,例如Java的录像和Java的文章都属于Java主题的产品,他们将在同一个工厂生产。产品等级是指不同产品族中的同类产品,比如Java的录像和Python的录像,他们分属不同的主题,但都是录像这种类型。抽象工厂可以将一个产品族中的产品(多个产品等级)统一到一起创建。因此在抽象工厂创建时就决定了其包含的产品等级,...原创 2019-03-10 00:44:37 · 560 阅读 · 1 评论 -
设计模式:让我们一起破坏单例模式吧
简介单例对象的类必须保证只有一个实例存在,并提供一个全局访问点。可以减少内存开销,同时避免对资源的多重占用。连接池、线程池都是常见的单例模式。实现一个单例模式基本有两种思路,一种是在初次使用时构建(懒汉式),一种是在类加载时构建(饿汉式)。这两种思路中,该类的构造函数都必须定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一...原创 2019-03-10 22:38:24 · 157 阅读 · 0 评论 -
设计模式:JDK中的简单工厂
简介简单工厂虽然不属于GOF23中设计模式,但却是非常简单、基础、常用的一种。一般由一个工厂类、一个产品基类、多个产品子类构成。由工厂对象决定创建哪种产品类的实例,调用者只需要和工厂类交互。举例例如,我们现在有一个视频工厂,你无需直接创建具体的视频对象,工厂自会为你安排妥当。基类,规定必要属性和抽象方法。public abstract class Video { private...原创 2019-03-07 21:58:55 · 1428 阅读 · 2 评论