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

医疗网站有哪些建网站开发

医疗网站有哪些,建网站开发,微网站 微信,现在建网站挣钱吗享元模式 什么是享元模式 享元模式#xff08;Flyweight Pattern#xff09;是一种对象结构型设计模式#xff0c;用于减少创建对象的数量#xff0c;以减少内存占用和提高系统性能。它通过共享已经存在的对象来避免创建大量相似的对象#xff0c;从而降低内存消耗。 在…享元模式 什么是享元模式 享元模式Flyweight Pattern是一种对象结构型设计模式用于减少创建对象的数量以减少内存占用和提高系统性能。它通过共享已经存在的对象来避免创建大量相似的对象从而降低内存消耗。 在享元模式中通常会有一些细粒度的对象它们具有一些共同的属性但是某些属性可能会变化。 优点 减少对象数量通过共享对象可以显著减少系统中对象的数量从而节省内存空间。提高性能由于减少了对象的创建和销毁可以提高系统的性能。 缺点 增加系统复杂性引入享元模式可能会增加系统的复杂性特别是当处理内在状态和外在状态的分离时。可能不适用于所有场景不是所有情况都适合使用享元模式例如当对象的状态变化非常频繁时共享对象可能不是最佳选择。 核心 享元模式以共享的方式高效的支持大量细粒度对象的复用。享元对象能做到共享的关键是区分了内部状态和外部状态。 内部状态可以共享不会岁环境变化发生改变外部状态不可以共享会随环境变化二改变 享元模式的实现 抽象享元类Flyweight通常是一个接口或者抽象类声明公共的方法这些方法可以想外界提供对象的内部状态及设置外部状态具体享元类(ConcreteFlyweight)为内部状态提供成员变量进行存储非共享享元类(UnsharedConcreteFlyweight)不能为共享的子类可以设计成非共享享元类享元工厂FlyweightFactory创建并管理享元对象享元池一般设计成键值对 案例 对于围棋棋子进行简单可以划分 内部状态颜色 外部状态棋盘坐标 UML 实现步骤 定义外部状态:地址Address 定义享元接口提供操作外部状态的接口,通过传入地址获取外部状态地址的信息 定义享元接口的实现围棋 通过属性设置内部状态并提供内部状态的设置及调用方法这里只提供了设置方法通过实现享元接口传入外部状态调用外部状态方法或获取外部状态属性 享元工厂 定义享元池通常以键值对形式缓存用于缓存共享内部状态该方法只适用单线程多线程需要进行优化提供获取内部状态的方法如果享元池中已存在则享元池中对象否则新建一个对象并设置到享元池中 代码实现 Address.java // 定义外部状态 public class Address {private int x;private int y;public Address(int x, int y) {this.x x;this.y y;}public int getX() {return x;}public int getY() {return y;} }Flyweight.java // 享元接口 // * 提供操作外部状态的接口 public interface Flyweight {// 获取棋子信息 // * 通过传入地址获取外部状态地址的信息void getInfo(Address address); }ChessPieces.java //定义享元接口的实现 // 围棋 // 通过属性设置内部状态并提供内部状态的设置及调用方法这里只提供了设置方法、 // 通过实现享元接口传入外部状态调用外部状态方法或获取外部状态属性 public class ChessPieces implements Flyweight{private String color;public ChessPieces(String color) {this.color color;}Overridepublic void getInfo(Address address) {System.out.printf(颜色%s,坐标x%s,y%s%n,color,address.getX(),address.getY());} }FlyweightFactory.java import java.util.HashMap; import java.util.Map;// 享元工厂 // * 定义享元池通常以键值对形式缓存用于缓存共享内部状态该方法只适用单线程多线程需要进行优化 // * 提供获取内部状态的方法如果享元池中已存在则享元池中对象否则新建一个对象并设置到享元池中 public class FlyweightFactory {// 定义享元池private MapString, Flyweight mapPool new HashMapString, Flyweight();// 提供获取内部状态的方法public Flyweight getChessPieces(String key){Flyweight flyweight mapPool.get(key);if(flyweight null){flyweight new ChessPieces(key);mapPool.put(key, flyweight);}return flyweight;} }TestClient.java public class TestClient {public static void main(String[] args) {FlyweightFactory flyweightFactory new FlyweightFactory();Flyweight chessPieces flyweightFactory.getChessPieces(白色);chessPieces.getInfo(new Address(1,2));} }执行结果 gitee源码 git clone https://gitee.com/dchh/JavaStudyWorkSpaces.git
http://www.zqtcl.cn/news/254502/

相关文章:

  • 网站开发毕设开题报告在线设计网站源码
  • 优普南通网站建设申请注册公司流程
  • 越南网站建设河南企业做网站
  • 优化免费网站建设做网站领券收佣金
  • 网站常用图标素材办公用品十大购物网站排名
  • 网络门户网站站长要维护网站
  • 网上有做衣服的网站有哪些做网站推广怎样才能省钱
  • 网站专题设计欣赏找网站公司做网站是怎样的流程
  • 网站上传后如何设置首页制作网络游戏
  • 外贸接单网站排名榜珠宝行网站建设方案
  • 酒店门户网站建设背景门户网站的发布特点
  • 网站营销与推广汕头澄海
  • php和asp做网站哪个好阿里云wordpress配置
  • 东莞响应式网站建设网络营销策略和营销策略的区别
  • 番禺做网站哪家强合肥网页网站制作
  • 100个免费推广网站阜阳网站建设价格低
  • 广西茶叶学会 网站建设给人做网站能赚钱吗
  • 网站建设的发展目标西湖区住房和城乡建设局网站
  • 佛山市手机网站建设网页制作教程第三版赵丰年pdf
  • 做的好的装修公司网站网页制作搜题软件
  • 网站公告栏代码铁路建设标准网站
  • 网站设计工具更好的做网站禅城技术支持骏域网站建设
  • 百度商桥可以在两个网站放网站qq 微信分享怎么做的
  • 大学生网站建设开题报告秀山网站建设
  • 网站建设的实施方案网站建设基本标准
  • 做一个推广网站多少钱360导航网址
  • 在线网站建设哪家便宜wordpress 爬取
  • 移动端网站设计规范百度一下首页问问
  • 哪些网站怎么进广西玉林网站建设
  • 高端建站设计赶集网免费发布信息