当前位置: 首页 > news >正文

永久免费手机建站平台2022年网络流行语

永久免费手机建站平台,2022年网络流行语,新手入门网站建设书籍,移动终端网站开发概述 享元模式 : Flyweight Pattern : 是一种结构型设计模式,也叫做 蝇量模式。 主要通过对象的复用来减少对象创建的次数和数量,从而减少系统内存的使用和降低系统的负载。 主要作用: 避免在有大量对象时频繁创建和销毁造成系统资…

概述

享元模式Flyweight Pattern : 是一种结构型设计模式,也叫做 蝇量模式
主要通过对象的复用来减少对象创建的次数和数量,从而减少系统内存的使用和降低系统的负载。

主要作用
避免在有大量对象时频繁创建和销毁造成系统资源的浪费,把对象中共同的部分抽象出来,如果有相同的业务请求,则直接返回内存中已有的对象,避免重新创建对象。
即 : 在系统需要一个对象时,首先在系统中查找并尝试重用已有的对象,如果未找到匹配的对象,则创建新对象并将其缓存在系统中以便下次使用。

既然要从内存中匹配对象,因此,需要有一个类来充当对象池的角色,对象的获取,经过这个对象池。

核心概念

内部状态(Intrinsic State)
可以共享的状态,存储在对象内部,对所有调用者可见。
例如 : 围棋的棋子 , 只有 黑、白 两种颜色,这个就可以划分为 棋子的内部状态。

外部状态(Extrinsic State)
随外部环境变化的状态,不存储在对象内部,而是由客户端在调用时传递。
例如 : 围棋棋子的位置坐标,每一颗棋子在下棋过程中才能确定,即为外部状态。

核心角色

抽象享元(Flyweight):定义享元对象的接口,声明内部状态和操作。
具体享元(Concrete Flyweight):实现抽象享元接口,存储内部状态。
享元工厂(Flyweight Factory):负责创建和管理享元对象,维护对象池(共享对象的缓存)。

类图

在这里插入图片描述

案例代码

享元接口

public interface CheesePiece {// 外部状态 : 坐标位置 : 下棋的时候才能确定void display(int x,int y);
}

实现类

public class ConcreteCheesePiece implements CheesePiece{// 内部状态 : 棋子的颜色private String color;// 构造方法、getter、setter 方法@Overridepublic void display(int x, int y) {System.out.println(color + " 落在了 ("+x+","+y+") 的位置");}
}

享元工厂

public class CheesePieceFactory {// 一个存储享元对象的容器private static Map<String, CheesePiece> pool = new HashMap<>();// 获取享元对象public static CheesePiece getCheesePiece(String color) {// 如果容器中没有这个对象,就创建一个,并放入容器中if (!pool.containsKey(color)){pool.put(color, new ConcreteCheesePiece(color));}// 返回享元对象return pool.get(color);}}

客户端

public class Client {public static void main(String[] args){CheesePiece black = CheesePieceFactory.getCheesePiece("黑子");CheesePiece white = CheesePieceFactory.getCheesePiece("白子");black.display(1, 1);white.display(2, 2);// 验证一下,重复获取对象是否为同一个对象CheesePiece black2 = CheesePieceFactory.getCheesePiece("黑子");System.out.println(black == black2);}
}
运行结果:
黑子 落在了 (1,1) 的位置
白子 落在了 (2,2) 的位置
true
http://www.dtcms.com/a/510276.html

相关文章:

  • 如何建立一个网站的快捷方式网站建设seo优化价格
  • 山东省建设教育集团网站首页白杨seo
  • 网站优化目的百度排名怎么做
  • 如何注册网站免费注册wordpress 外网访问
  • 一级域名和二级域名做两个网站网站开发公司的义务
  • dede手机网站建设教程中国建设银行网站签名通下载
  • vps 做网站珠海网站开发
  • 个人可以做几个网站吗刚刚发生了什么大事
  • 做拍卖的网站有哪些推广网站平台免费
  • 网站流量利用浙江建设职业继续教育学院网站
  • 提供网站建设方案服务动漫设计专业哪个学校比较好
  • 青岛做网站建设代做效果图的网站
  • 网站设计与应用方向论文泉州做网站多少钱
  • 怎么给设计网站推广成都网站建设排名
  • 临沂网站seo南京seo推广
  • 阿里云注册网站之后怎么做网站天元建设集团有限公司 天眼查
  • 胶南建网站现在 做网站 技术路线
  • 湖北网站建设服装设计网站模板
  • [ 1500元做网站_验收满意再付款! ]_沛县网络公司cd.wordpress.ncn
  • 烟台建设协会网站太原小程序制作电话
  • 北京网站设计浩森宇特网站建设的公司怎么做
  • 几十万做网站平台兰州网络推广专员
  • 青海公路工程建设市场信用信息服务网站建站软件2017
  • 找别人建个网站多少钱整合网络营销外包
  • 做本地地旅游网站计算机网络工程师
  • 单位网站建设管理工作总结山东手机网站建设电话
  • 阿里云iot网站开发2023新闻摘抄
  • 做网站有虚拟服务器淮安百度网站建设
  • 广东网站se0优化公司小程序源码免费
  • 成都网站建设服务商二级域名申请入口