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

娱乐新闻做的好的网站WordPress更换域名之后

娱乐新闻做的好的网站,WordPress更换域名之后,网站建设 天台,英德市建设局网站写在前面 本文看下一种结构型设计模式#xff0c;享元模式。 1#xff1a;介绍 1.1#xff1a;什么时候使用享元模式 当程序需要大量的重复对象#xff0c;并且这些大量的重复对象只有部分属性不相同#xff0c;其他都是相同的时候#xff0c;就可以考虑使用享元设计…写在前面 本文看下一种结构型设计模式享元模式。 1介绍 1.1什么时候使用享元模式 当程序需要大量的重复对象并且这些大量的重复对象只有部分属性不相同其他都是相同的时候就可以考虑使用享元设计模式设计模式来实现。典型的如围棋游戏中的棋子除了颜色和位置不同外其他都相同。射击游戏中的子弹除了大小型号杀伤力等不同外其他都相同。 1.2UML类图 享元设计模式包含如下元素 1Flyweight定义享元对象的公共操作 2ConcreteFlyweight具体的享元对象 3FlyweightFactory享元对象工厂负责生产享元对象方便客户端获取享元对象的同时也可以缓存享元对象防止因为创建过多的对象而导致内存溢出等问题想一下射击游戏用户如果是用机关枪一直突突突得创建多少对象啊UML图如下 另外享元设计模式分为内部状态和外部状态如围棋游戏棋子的黑色和白色就是内部状态在对象的内部定义和维护是可以共享的但是落子的位置则是各不相同的就是外部状态需要外部传入。如果是工作中认为场景适合使用享元设计模式则一定要考虑清楚内部状态和外部状态的问题。 2实例 源码 。 2.1场景 围棋游戏创建游戏中的黑子和白子。 2.2程序 享元接口 public interface Chess {// 绘制棋子落子走一步棋// 位置外部状态由外部传入void draw(int x,int y); }内部状态枚举 public enum Color {BLACK(黑色), WHITE(白色);private String name;// 默认就是private的并且不能反射暴力也不行Color(String name) {this.name name;}public String getName() {return name;}public void setName(String name) {this.name name;}public String getAlias() {return this.name;} }具体享元类 黑子和白子类 //黑棋 public class BlackChess implements Chess {// 内部状态共享private final Color color Color.BLACK;private final String sharp 圆形;public Color getColor() {return color;}// 外部状态Overridepublic void draw(int x, int y) {System.out.println(String.format(%s%s棋子置于%d%d处, sharp, color.getAlias(), x, y));} }//白棋 public class WhiteChess implements Chess {//内部状态共享private final Color color Color.WHITE;private final String sharp 圆形;public Color getColor() {return color;}Overridepublic void draw(int x, int y) {System.out.println(String.format(%s%s棋子置于%d%d处, sharp, color.getAlias(), x, y));} }享元工厂类 public class ChessFactory {private static final MapColor, Chess chessMap new HashMap();public static Chess getChess(Color color) {Chess chess chessMap.get(color);if (chess null) {chess color Color.WHITE ? new WhiteChess() : new BlackChess();chessMap.put(color, chess);}return chess;} }测试 public class FlyweightClient {Testpublic void playChess() {//下黑子Chess backChess1 ChessFactory.getChess(Color.BLACK);backChess1.draw(2, 5);//下白子Chess whiteChess ChessFactory.getChess(Color.WHITE);whiteChess.draw(3, 5);//下黑子Chess backChess2 ChessFactory.getChess(Color.BLACK);backChess2.draw(2, 6);System.out.println(String.format(backChess1:%d | backChess2:%d | whiteChess:%d,backChess1.hashCode(), backChess2.hashCode(), whiteChess.hashCode()));} }运行 圆形黑色棋子置于25处 圆形白色棋子置于35处 圆形黑色棋子置于26处 backChess1:1327763628 | backChess2:1327763628 | whiteChess:1915503092Process finished with exit code 0写在后面 参考文章列表 秒懂设计模式之享元模式Flyweight Pattern 。
http://www.sadfv.cn/news/236331/

相关文章:

  • 主题资源网站建设作业中国建设银行官网首页
  • 建站系统cmswordpress如何调用图片
  • php做网站技术方案南京网站设计个人
  • 贵阳高端网站建设加强网站安全建设方案
  • 做彩票网站模板yoast wordpress seo
  • 搭建wordpress站点网站空间的管理站点
  • 网站开发公司+重庆深圳网站建设公司的英文名是
  • 包头市建设工程质量监督站网站秦皇岛旅游攻略
  • 做网站内嵌地图网站制作公司
  • 南通市通州建设局网站方案策划
  • 深圳制作网站公司哪里好苏州市城市建设局网站
  • 1688网站怎样做推广界面设计教程
  • 旅游网站网页布局萝岗微信网站建设
  • 加强旅游网站建设珠海网络营销推广
  • 运营服务商官方网站企业公司网站源码
  • 上行10m企业光纤做网站中英文的网站怎么建设
  • 网站建设的公司在哪找姜堰网站建设
  • 营销类网站推荐wordpress 如何修改网页标题
  • 建设金融行业网站紧固件网站建设
  • 网站制作验收单运维培训 网站建设
  • 做网站哪便宜南阳seo优化公司
  • 网站设计团队发展寮步网页设计
  • 做网站在哪里买空间域名网站设计 现在流行的导航方式
  • 宁波企业网站设计张家港本地论坛
  • 注册商标怎么注册商标百度seo网络营销书
  • 建筑网站登陆页面wordpress 修改登录
  • 网站设计哪家便宜河西网站建设
  • 如何做酒店网站设计wordpress微信免签支付接口
  • 大型门户网站建设哪专业佛山网站建设企业推荐
  • 适合新手做的网站网站集约化建设难点