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

简单网站制作代码全国网站集约化建设试点

简单网站制作代码,全国网站集约化建设试点,商城网站结算页面怎么做,网站镜像代理怎么做让我们以游戏开发中的棋类游戏(例如国际象棋)为例来展示享元模式的代码实现。在这个例子中,棋子的类型是内部状态,而棋子的位置是外部状态。 Java 代码示例 import java.util.HashMap; import java.util.Map;// 享元接口 interf…

让我们以游戏开发中的棋类游戏(例如国际象棋)为例来展示享元模式的代码实现。在这个例子中,棋子的类型是内部状态,而棋子的位置是外部状态。

Java 代码示例

import java.util.HashMap;
import java.util.Map;// 享元接口
interface ChessPieceFlyweight {void move(int x, int y); // 外部状态:位置String getColor(); // 内部状态:颜色
}// 具体享元类
class ConcreteChessPiece implements ChessPieceFlyweight {private final String color; // 内部状态public ConcreteChessPiece(String color) {this.color = color;}@Overridepublic void move(int x, int y) {System.out.printf("Moving %s piece to (%d,%d).\n", color, x, y);}@Overridepublic String getColor() {return color;}
}// 享元工厂
class ChessPieceFactory {private static final Map<String, ChessPieceFlyweight> pieces = new HashMap<>();public static ChessPieceFlyweight getChessPiece(String color) {if (!pieces.containsKey(color)) {ChessPieceFlyweight piece = new ConcreteChessPiece(color);pieces.put(color, piece);}return pieces.get(color);}
}// 客户端代码
public class FlyweightExample {public static void main(String[] args) {ChessPieceFlyweight whitePiece = ChessPieceFactory.getChessPiece("White");ChessPieceFlyweight blackPiece = ChessPieceFactory.getChessPiece("Black");// 棋子被多次移动到不同位置,但对象是共享的whitePiece.move(1, 2);blackPiece.move(2, 3);whitePiece.move(4, 5);// ... 其他棋子移动操作}
}

在这个例子中,ChessPieceFlyweight 接口定义了棋子的外部状态方法 move 和内部状态方法 getColorConcreteChessPiece 类实现了这个接口,并持有内部状态 color,它在棋子的生命周期中是不变的。

ChessPieceFactory 类是享元工厂,它确保同一颜色的棋子只创建一次,并在之后的请求中返回已创建的实例。这样,即使在棋盘上有多个同色棋子,实际上它们都是由同一个享元实例代表的。

客户端代码通过享元工厂获取棋子实例,并多次调用 move 方法来改变棋子的位置,这些位置信息作为外部状态在每次调用时传入。

这个例子展示了享元模式如何在需要大量相似对象的情况下减少内存消耗,通过共享实例来避免重复创建相同或相似的对象。

http://www.yayakq.cn/news/643012/

相关文章:

  • 网站双收录怎么做301跳转wordpress您访问的网页出错
  • 黄山北京网站建设公司网站模版 dedecms
  • 哪个网站做ppt赚钱视频模板免费制作
  • 做网站中网页的大小一级造价师考试科目
  • 企业网站如何建设报告高新区区建设局网站
  • 现代郑州网站建设百度注册新账号
  • 成都网站建设询q479185700霸屏当今做那些网站能致富
  • 网站域名解析如何制作和设计公司网站
  • 花钱做网站注意些什么各大公司开源网站
  • 空壳网站主体注销淘宝店铺网站建设可行性报告
  • 东莞网站外包芒果视频怎样下载到本地
  • 龙华网站 建设信科网络在演示文稿上网站怎么做
  • 做网店有哪些网站wordpress微信
  • 南昌做网站比较好的公司有哪些深圳定制家具哪家性价比高
  • 各大门户网站网络运营者应当对其收集的用户信息严格保密
  • 常州做网站价位wordpress怎么中文字体
  • 做推广网站郑州最好的建站公司
  • 制作网站规划书自己有网站怎么做app
  • 网站建设丶金手指花总11俄文网站建设 俄文网站设计
  • 纪念馆网站建设方案上海知名的seo推广咨询
  • 音乐网站网页设计博物馆展厅设计
  • 宝安做棋牌网站建设多少钱淄博英文网站建设专业
  • 网站建设的目的与意义试述网站建设的流程
  • 南山商城网站建设哪家服务周到会员管理系统app
  • 适合用struts2做的网站品牌广告设计制作公司网站源码
  • 怎么样把网站做火有没有知道网址的
  • 电子商务网站建设规划的内容wordpress 小插件
  • 梅州建网站wordpress 文章阅读量
  • 电脑做系统教学网站网站推广 知乎
  • ftp网站 免费网站备案通知