Java设计模式之亨元模式
之前在项目中接触过亨元模式这一种设计模式,当时因为项目赶进度,因此只不过是大概的了解了一下,刚好今天有时间,就写一篇博客详细的学习一下亨元模式。 一、概念 运用共享技术有效的支持大量细粒度的对象。(来自百度百科) 百度上的解释十分的抽象,相信很多人和我一样,咋看上去,一脸懵,不知道在说些什么,如果换一种说法,也许会更容易理解:亨元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。 二、结构图 在看具体的实现案例之前,首先了解一下亨元模式的几个概念和UML结构图。 三、实现Demo 去图书馆借书的过程就是一个典型的亨元模式实现案例,当我们去图书馆借书时,如果书架上有这本书,那么就直接拿走,如果没有,就需要到图书管理处拿一本新书,对于整个图书馆来说,书其实是共享的。 在这个过程中,图书馆就相当于亨元工厂,书就相当于抽象的亨元接口,而每一个人借的书就相当于具体的亨元实现。在这其中,亨元工厂是核心。 首先,定义抽象的亨元接口,也就是书。 public interface Book ( // 借书的方法 public void borrowBook(); } 接下来,就是定义每一本书的具体实现类。 public class SpecificBook implements Book { // 书名 private String bookName; // 构造方法 public