美文网首页
设计模式第九篇-结构型模式【享元模式】

设计模式第九篇-结构型模式【享元模式】

作者: 做个快乐的代码哥 | 来源:发表于2018-04-30 11:00 被阅读6次

设计模式案例分析-github

一、什么是享元模式?

     定义:   主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

   通俗理解: 就是使用已经存在的对象,而非再去创建对象,项目中其实我们经常用,只是不知道其实是享元模式,比如使用HashMap缓存键值对,当去创建对象是,去map中查找是否存在键,如果存在,直接返回对象,否则创建新的对象,并且放到map中。当然这只是享元模式的一个简单案例。

二、角色?

     1、抽象享元对象(可无)

     2、具体享元对象—>需要共享的对象 

     3、享元对象的工厂—>创建对象,缓存对象

三、使用场景?

    1、系统有大量相似对象。 2、需要缓冲池的场景。

三、案例? 比如随机创建获取一个圆形。

  角色一: 抽象享元对象: IShape

  角色二: 具体享元对象: Circle

  角色三: 享元工厂

public interface IShape {

void draw();

}

public class Circle implements IShape {

private int radius;

    public Circle(int radius) {

this.radius = radius;

    }

@Override

    public void draw() {

Log.i("zqr", "绘制了一个半径为:" +radius);

    }

}

public class CircleFactory {

private static HashMaphashMap =new HashMap<>();

    public static IShapegetCircle(int radius) {

// 没必要每次都创建,可以判断存在半径为radius的圆,就使用已有的

        Circle circle;

        synchronized (hashMap) {

circle =hashMap.get(radius);

            if (circle ==null) {

circle =new Circle(radius);

                hashMap.put(radius, circle);

            }

}

return circle;

    }

}

相关文章

  • Java设计模式——享元模式

    Java设计模式之享元模式 这期跟大家聊的的设计模式是享元模式,该模式也是结构模式。 简介 利用共享的方式解决大量...

  • 设计模式--享元模式

    目录 本文的结构如下: 引言 什么是享元模式 模式的结构 典型代码 代码示例 单纯享元模式和复合享元模式 模式扩展...

  • 设计模式分类汇总

    结构型 适配器模式 组合模式 桥接模式 代理模式 装饰者模式 门面模式 享元模式 行为型 责任链模式 命令模式 解...

  • 结构型模式:享元模式

    文章首发:结构型模式:享元模式 七大结构型模式之六:享元模式。 简介 姓名 :享元模式 英文名 :Flyweigh...

  • 好程序员Java培训​分享java设计模式之享元模式

    好程序员Java培训​分享java设计模式之享元模式,Java设计模式中的享元模式。享元模式有点类似于单例...

  • 设计模式-享元模式

    享元模式介绍 享元模式(Flyweight Pattern)是结构型设计模式的一种。其实对象池的一种实现方式,通过...

  • 手撸golang 结构型设计模式 享元模式

    手撸golang 结构型设计模式 享元模式 缘起 最近复习设计模式拜读谭勇德的<<设计模式就该这样学>>本系列笔...

  • java23种设计模式

    创建型 抽象工厂模式工厂方法建造者模式原型模式单态模式 结构型 适配器模式桥接模式组合模式外观模式装饰者模式享元模...

  • Android常用设计模式

    设计模式分类 创建型模式工厂方式模式建造者模式抽象工程模式原型模式单例模式 结构型模式桥接模式代理模式享元模式外观...

  • Java设计模式_享元模式

    点击链接跳转:设计模式——享元模式

网友评论

      本文标题:设计模式第九篇-结构型模式【享元模式】

      本文链接:https://www.haomeiwen.com/subject/ttrzlftx.html