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

郑州东区做网站电话wordpress制作翻译

郑州东区做网站电话,wordpress制作翻译,aso优化排名违法吗,seo超级外链发布享元模式#xff08;Flyweight Pattern#xff09;是一种结构型设计模式#xff0c;它通过共享大量细粒度的对象来减少内存消耗。这个模式的核心思想是把对象的状态分为内在状态和外在状态#xff0c;其中内在状态是可以共享的#xff0c;而外在状态是需要独立维护的。 享…享元模式Flyweight Pattern是一种结构型设计模式它通过共享大量细粒度的对象来减少内存消耗。这个模式的核心思想是把对象的状态分为内在状态和外在状态其中内在状态是可以共享的而外在状态是需要独立维护的。 享元模式的结构 享元模式主要包含以下几个部分 享元接口Flyweight Interface定义了具体享元类需要实现的方法。这些方法主要用于操作享元对象的内在状态。 具体享元类Concrete Flyweight实现享元接口并存储可以共享的内在状态。 非共享享元类Unshared Flyweight并不是所有的享元对象都可以共享对于那些不能共享的享元对象可以通过这个类来实现。 享元工厂类Flyweight Factory负责创建和管理享元对象并确保合理地共享这些对象。 客户端Client使用享元模式的类。客户端需要将外在状态传递给享元对象。 享元模式的实现 以下是一个简单的享元模式示例用于管理和共享一些图形对象如圆形。 // 享元接口 interface Shape {void draw(String color); }// 具体享元类 class Circle implements Shape {private String intrinsicState; // 内在状态可以共享private String extrinsicState; // 外在状态每个对象独有public Circle(String intrinsicState) {this.intrinsicState intrinsicState;}Overridepublic void draw(String color) {this.extrinsicState color;System.out.println(Drawing Circle with color: color and intrinsic state: intrinsicState);} }// 享元工厂类 class ShapeFactory {private static final MapString, Shape circleMap new HashMap();public static Shape getCircle(String intrinsicState) {Circle circle (Circle) circleMap.get(intrinsicState);if (circle null) {circle new Circle(intrinsicState);circleMap.put(intrinsicState, circle);System.out.println(Creating circle with intrinsic state: intrinsicState);}return circle;} }// 客户端 public class FlyweightPatternDemo {public static void main(String[] args) {Shape circle1 ShapeFactory.getCircle(Shared State 1);circle1.draw(Red);Shape circle2 ShapeFactory.getCircle(Shared State 1);circle2.draw(Green);Shape circle3 ShapeFactory.getCircle(Shared State 2);circle3.draw(Blue);} }在这个示例中Circle 类实现了 Shape 接口并包含了内在状态intrinsicState和外在状态extrinsicState。ShapeFactory 类通过管理一个 HashMap 来共享 Circle 对象。客户端通过 ShapeFactory 获取 Circle 对象并传递外在状态来绘制图形。 对象的状态分为内在状态和外在状态 将对象的状态分为内在状态和外在状态是享元模式的核心概念之一。内在状态是对象内部固有的、不随环境改变的状态而外在状态是依赖于环境、可以在对象外部改变的状态。 为了更好地理解这个概念我们可以通过一个例子来解释。 示例围棋棋子 假设我们要实现一个围棋游戏其中有许多棋子。这些棋子只有黑白两种颜色但每个棋子的位置行和列是不同的。我们可以通过享元模式来共享棋子的颜色内在状态而位置外在状态则由客户端提供。 // 享元接口 interface GoPiece {void place(int row, int col); }// 具体享元类 class GoPieceImpl implements GoPiece {private String color; // 内在状态public GoPieceImpl(String color) {this.color color;}Overridepublic void place(int row, int col) {System.out.println(Placing color piece at ( row , col ));} }// 享元工厂类 class GoPieceFactory {private static final MapString, GoPiece pieces new HashMap();public static GoPiece getGoPiece(String color) {GoPiece piece pieces.get(color);if (piece null) {piece new GoPieceImpl(color);pieces.put(color, piece);System.out.println(Creating color piece.);}return piece;} }// 客户端 public class FlyweightPatternDemo {public static void main(String[] args) {GoPiece blackPiece1 GoPieceFactory.getGoPiece(Black);blackPiece1.place(1, 1);GoPiece blackPiece2 GoPieceFactory.getGoPiece(Black);blackPiece2.place(2, 2);GoPiece whitePiece1 GoPieceFactory.getGoPiece(White);whitePiece1.place(1, 2);GoPiece whitePiece2 GoPieceFactory.getGoPiece(White);whitePiece2.place(2, 1);} }在这个示例中 内在状态棋子的颜色color是可以共享的这个状态是固定的不会因为棋子的位置而改变。因此我们将颜色设为内在状态。外在状态棋子的行和列row 和 col是随时变化的这个状态取决于棋子在棋盘上的具体位置。因此我们将位置设为外在状态由客户端在使用棋子时传递。 在享元模式中通过将内在状态和外在状态分离我们可以显著减少内存消耗。在上述示例中我们只创建了两个享元对象黑棋子和白棋子即使我们在不同位置放置了多个棋子也只是复用这两个享元对象。 享元模式的优缺点 优点 减少内存消耗通过共享细粒度对象可以显著减少内存使用适用于大量重复对象的场景。提高性能由于减少了对象的创建和销毁可以提高系统的性能。 缺点 复杂性增加引入享元模式后系统的复杂性增加需要额外的代码来管理共享对象。适用场景有限享元模式并不适用于所有场景只有在有大量细粒度对象需要共享时才适用。 适用场景 享元模式主要适用于以下场景 系统中有大量相似对象造成了内存的高消耗。大部分对象的状态是可以外部化的可以通过外在状态来区分对象。对象的内在状态是相对稳定且不变的。 通过享元模式可以在保证系统性能的前提下有效地减少内存的使用提高系统的可扩展性。
http://www.hkea.cn/news/14318182/

相关文章:

  • 网站没有icp备案怎么访问wordpress音乐播放器插件
  • 西安网站建设专家个人网站建设服务器
  • 建设宠物网站的可行性算命网站该怎样做
  • 上海网站建设思创怎么做公司内网网站
  • 哈尔滨网站建设公司哪家好昆山市网站建设
  • 网站开发项目责任分配矩阵wordpress非首页显示文章列表
  • 做外贸开店用哪个网站音酷网站建设
  • 如何修复网站中的死链app运营策划
  • 适合翻译做兼职的网站wordpress模版目录
  • 网站前端设计要做什么生物科技 网站模板下载
  • 有些电影网站是怎么做的域名能卖多少钱一个
  • 网站正在建设源代码西安房产网
  • 无锡网站搜索优化jsp网站开发广告位
  • 潍坊品牌网站建设公司做木材加工的企业网站首页
  • seo 网站结构优化做网站公司 陕西渭南
  • 哪个网站是专做宝宝饭的钟表东莞网站建设
  • 做网站多久学会上海建设工程信息网查询
  • 国外网站备案查询如何做好网站排名
  • 潍坊有哪些网站做网站用什么软件知乎
  • 网站开发德菁推广网站文案
  • 微信微网站制作怎么上传网站地图
  • 义乌外贸公司建站商城建设网站制作
  • ota平台网站建设电脑谷歌浏览器打开是2345网址导航
  • 莱芜新站优化海西州公司网站建设
  • 公司做彩票网站违法吗免费logo在线制作头像
  • 网站开发注意建设掌上银行官方网站
  • 聊天网站模板江苏水利工程建设招投标网站
  • 来宾住房和城乡建设网站小区物业管理网站开发报告
  • 企业网站网页设计建设网站准备资料
  • 学网站开发推荐书注册 网站开发 公司