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

购买网站空间ftp设计如何更新网站快照

购买网站空间ftp设计,如何更新网站快照,互联网保险管理办法2021,北京工商注册登记网官网享元模式(Flyweight Pattern)是一种结构型设计模式,它的主要目的是通过共享已存在的对象来大幅度减少需要创建的对象数量,从而降低系统内存消耗和提高性能。它通过将对象的状态划分为内部状态(Intrinsic State&#xf…

享元模式(Flyweight Pattern)是一种结构型设计模式,它的主要目的是通过共享已存在的对象来大幅度减少需要创建的对象数量,从而降低系统内存消耗和提高性能。它通过将对象的状态划分为内部状态(Intrinsic State)和外部状态(Extrinsic State),仅共享具有相同内部状态的对象。

原理

  • 抽象享元类(Flyweight Interface): 定义了所有具体享元类的公共接口,通过这个接口客户端可以访问内在状态。
  • 具体享元类(Concrete Flyweight): 实现抽象享元类,存储并提供内部状态共享的具体实现。
  • 享元工厂(Flyweight Factory): 负责创建和管理享元对象,并确保正确地重用现有的享元对象。当请求一个新对象时,如果该对象已经存在,则返回已有的实例;否则,才创建一个新的实例。

Java代码示例

// 抽象享元类
public interface Shape {void draw(int x, int y);
}// 具体享元类:圆形
public class Circle implements Shape {private String color; // 外部状态,不共享// 内部状态,被多个对象共享private static Map<String, Circle> circlePool = new HashMap<>();private Circle(String color) {this.color = color;}// 由享元工厂负责调用此方法以复用已有对象或创建新的对象public static Circle getCircle(String color) {if (!circlePool.containsKey(color)) {circlePool.put(color, new Circle(color));}return circlePool.get(color);}@Overridepublic void draw(int x, int y) {System.out.println("Drawing a circle at (" + x + ", " + y + ") with color: " + color);}
}// 享元工厂
public class ShapeFactory {public static Shape getShape(String shapeType, String color) {if ("circle".equals(shapeType)) {return Circle.getCircle(color);} else {// 其他类型的形状处理...throw new UnsupportedOperationException("Unsupported shape type");}}
}// 客户端
public class Client {public static void main(String[] args) {Shape circle1 = ShapeFactory.getShape("circle", "red");circle1.draw(10, 10);Shape circle2 = ShapeFactory.getShape("circle", "blue");circle2.draw(50, 50);// 如果颜色“red”已经创建过,则circle3会复用之前的红色圆对象Shape circle3 = ShapeFactory.getShape("circle", "red");circle3.draw(100, 100);}
}

想象你正在运营一家制作个性化T恤衫的公司,每种颜色的T恤都是单独的一件衣服。为了节约成本,你会把每种颜色的T恤看作是共享资源,即每个颜色只准备一件基础T恤。当客户订购某种颜色的T恤时,只要仓库中有对应颜色的基础T恤,就直接使用这件基础T恤进行个性化的打印,而不是每次都生产一件全新的T恤。这就是享元模式的思想,在这里,颜色就是内部状态,而T恤上的文字或图案则是外部状态。

应用场景

  • 在图形用户界面中,绘制大量的相似对象,如字体、图标等,它们的大部分属性是相同的,只有少数属性因位置或大小不同而变化。
  • 大规模游戏场景中的大量小物件,比如森林里的树叶,可以通过共享纹理资源来节省内存。

适用性

  • 系统中存在大量相似对象并且这些对象的大部分状态都可以外部化时。
  • 对象的大多数状态都可以变为不可变的,并且可以合理划分内部状态和外部状态。
  • 需要大幅度减少创建对象的数量,以节省内存和提高性能。
http://www.yayakq.cn/news/35785/

相关文章:

  • 阿里云带宽5m能做什么网站松原手机网站开发公司
  • 佛山市手机网站建设网站设计制作报价图片
  • 电商网站建设内容页面设计时最好只使用一种颜色
  • 德宏芒市建设局网站网站营销单页面留言
  • 达州市住房和城乡建设局网站wordpress做中文官网
  • 浙江交工宏途交通建设有限公司网站传媒公司是干嘛的
  • 整套网站模板下载株洲市建设局官方网站
  • 网站如何做才容易被搜索到做商铺最好的网站
  • 网站开发导向图阿里云个人备案可以做企业网站吗
  • 学做预算有网站吗深圳物流公司招聘
  • 东莞代码网站建设网页无法访问什么原因
  • 兰州市网站建设投标网站怎么做
  • iis如何做网站cms系统源码
  • 可信赖的深圳网站建设可视化网站建设软件有哪些
  • 中企动力官网 网站厦门关键词排名推广
  • 做网站动图的软件邯郸小程序公司
  • 天津专门做网站的公司河南省建设工程招标投标协会网站
  • 广州网站推广费用汕头seo推广优化
  • 淄博做网站公司有哪些成都网站建设网站建设哪家好
  • 江西网站建设找哪家电商网站取名
  • 帮人注册网站_做app浙江电信关于网站备案信息核实的公告
  • 开网店要建网站 一起的吗品牌形象设计公司
  • 淮安网站建设公司年轻人免费在线看视频
  • 网上最好购物网站网站建设工程师面试
  • 网站建设本科毕业设计论文青岛网站建设公司
  • 建设好网站能赚到钱吗一个虚拟主机如何做多个网站
  • 网站 图标 gif万网域名注册官网
  • 一般电脑网站建设及运营多少钱asp.net ftp发布网站
  • 网站建设助手服务专业的公司网站设计
  • 深圳网站建设 设计首选深圳市上海卖房网站