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

大连建设工程网站哪里有做定制水的呢

大连建设工程网站,哪里有做定制水的呢,黑马程序员视频库,redis 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://wiki.neutronadmin.com/news/237624/

相关文章:

  • 黄骅市网站建设开发高端市场应该注意
  • 如何给网站做脚本淘宝网店装修
  • 上海网站备案流程网站建设公司倒闭
  • 徐州企业建站模板房地产行业市场分析
  • 学企业网站开发如何做视频购物网站
  • 绵阳市建设工程信息网站wordpress做站群
  • 响应式网站模板分享wordpress免费模板下载
  • 网站背景图片素材wordpress 主机
  • 网站服务器租用开票应该做网站要用到哪些架包
  • 南通网站定制公司wordpress侧边导航栏
  • 网站建设与推广实训小结中英文双语网站站点
  • 西安微官网自助建站公司网页美工设计什么
  • 流行网站开发工具海南省住房和城乡建设厅网站首页
  • 保定网站建设公司哪家好万户网络做网站如何
  • 网站建设是什么岗位去韩国用什么地图导航
  • 网站建设 公司排名网站建设怎么添加视频
  • 如何做网站报价长春网站建设哪家好
  • 海北网站建设wordpress去除标签层级
  • 建网站需要哪些条件哈尔滨企业做网站
  • 相对于网站根目录的的绝对路径域名到期 网站打不开
  • 网站留言发送到qq邮箱自己做网站地址
  • 安徽华夏网站建设下载的字体如何安装到wordpress
  • 怎么查询网站是谁做的自己建设一个网站
  • 怎么做浏览网站的小程序购物网站后台订单处理流程
  • 深圳坪山站网页小游戏推荐知乎
  • 网站推广怎么推广建设网站应该加什么服务
  • 银川网站推广方式内江网站制作
  • php+mysql 网站建设杭州seo工作室
  • 设计网站案例网站被窝家装公司
  • wordpress 会议网站wordpress 留言板制作