正规的彩票

详解JAVA 原型模式

 更新时间: 2020年06月28日 15:03:56   转载 作者: 菜鸟教程  
这篇文章主要介绍了JAVA 原型模式的的相关资料,文中讲解非常细致,实例帮助大家更好的理解和学习,感兴趣的朋友可以了解下

原型模式

yuanxingmoshi(prototype pattern)shiyongyuchuangjianzhongfudeduixiang,tongshiyounengbaozhengxingneng。zheizhongleixingdeshejimoshishuyuchuangjianxingmoshi,tatigongleyizhongchuangjianduixiangdezuijiafangshi。

zheizhongmoshishishixianleyigeyuanxingjiekou,gaijiekouyongyuchuangjiandangqianduixiangdekelong。dangzhijiechuangjianduixiangdedaijiabijiaodashi,zecaiyongzheizhongmoshi。liru,yigeduixiangxuyaozaiyigegaodaijiadeshujukucaozuozhihoubeichuangjian。zhengguidecaipiaokeyihuancungaiduixiang,zaixiayigeqingqiushifanhuitadekelong,zaixuyaodeshihougengxinshujuku,yicilaijianshaoshujukudiaoyong。

介绍

意图:

yongyuanxingshilizhidingchuangjianduixiangdezhonglei,bingqietongguokaobeizheixieyuanxingchuangjianxindeduixiang。

主要解决:

zaiyunxingqijianliheshanchuyuanxing。

何时使用:

正规的彩票1、dangyigexitongyinggaiduliyutadechanpinchuangjian,gouchenghebiaoshishi。

2、dangyaoshilihuadeleishizaiyunxingshikezhidingshi,liru,tongguodongtaizhuangzai。

3、weilebimianchuangjianyigeyuchanpinleicengcipingxingdegongchangleicengcishi。

正规的彩票4、dangyigeleideshilizhinengyoujigebutongzhuangtaizuhezhongdeyizhongshi。jianlixiangyingshumudeyuanxingbingkelongtamenkenengbimeiciyongheshidezhuangtaishougongshilihuagaileigengfangbianyixie。

如何解决:

liyongyiyoudeyigeyuanxingduixiang,kuaisudishengchengheyuanxingduixiangyiyangdeshili。

关键代码:

正规的彩票1、shixiankelongcaozuo,zai java jicheng cloneable,zhongxie clone(),zai .net zhongkeyishiyong object leide memberwiseclone() fangfalaishixianduixiangdeqiankaobeihuotongguoxuliehuadefangshilaishixianshenkaobei。

2、yuanxingmoshitongyangyongyugelileiduixiangdeshiyongzhehejutileixing(yibianlei)zhijiandeouheguanxi,tatongyangyaoqiuzheixie"yibianlei"yongyouwendingdejiekou。

应用实例:

1、xibaofenlie。

正规的彩票2、java zhongde object clone() fangfa。

优点:

1、xingnengtigao。

2、taobigouzaohanshudeyueshu。

缺点:

正规的彩票1、peibeikelongfangfaxuyaoduileidegongnengjinxingtongpankaolv,zheiduiyuquanxindeleibushihennan,danduiyuyiyoudeleibuyidinghenrongyi,tebiedangyigeleiyinyongbuzhichichuanxinghuadejianjieduixiang,huozheyinyonghanyouxunhuanjiegoudeshihou。

正规的彩票2、bixushixian cloneable jiekou。

使用场景:

1、ziyuanyouhuachangjing。

2、leichushihuaxuyaoxiaohuafeichangduodeziyuan,zheigeziyuanbaokuoshuju、yingjianziyuandeng。

正规的彩票3、xingnengheanquanyaoqiudechangjing。

4、tongguo new chanshengyigeduixiangxuyaofeichangfansuodeshujuzhunbeihuofangwenquanxian,zekeyishiyongyuanxingmoshi。

正规的彩票5、yigeduixiangduogexiugaizhedechangjing。

6、yigeduixiangxuyaotigongjiqitaduixiangfangwen,erqiegegediaoyongzhekenengdouxuyaoxiugaiqizhishi,keyikaolvshiyongyuanxingmoshikaobeiduogeduixianggongdiaoyongzheshiyong。

7、zaishijixiangmuzhong,yuanxingmoshihenshaodanduchuxian,yibanshihegongchangfangfamoshiyiqichuxian,tongguo clone defangfachuangjianyigeduixiang,ranhouyougongchangfangfatigongjidiaoyongzhe。yuanxingmoshiyijingyu java rongweihunranyiti,dajiakeyisuishounalaishiyong。

注意事项:

yutongguoduiyigeleijinxingshilihualaigouzaoxinduixiangbutongdeshi,yuanxingmoshishitongguokaobeiyigexianyouduixiangshengchengxinduixiangde。qiankaobeishixian cloneable,zhongxie,shenkaobeishitongguoshixian serializable duquerjinzhiliu。

实现

zhengguidecaipiaojiangchuangjianyigechouxianglei shape hekuozhanle shape leideshitilei。xiayibushidingyilei shapecache,gaileiba shape duixiangcunchuzaiyige hashtable zhong,bingzaiqingqiudeshihoufanhuitamendekelong。

prototypepatterndemo,zhengguidecaipiaodeyanshileishiyong shapecache leilaihuoqu shape duixiang。

步骤 1

chuangjianyigeshixianle cloneable jiekoudechouxianglei。

public abstract class Shape implements Cloneable {
  
  private String id;
  protected String type;
  
  abstract void draw();
  
  public String getType(){
   return type;
  }
  
  public String getId() {
   return id;
  }
  
  public void setId(String id) {
   this.id = id;
  }
  
  public Object clone() {
   Object clone = null;
   try {
     clone = super.clone();
   } catch (CloneNotSupportedException e) {
     e.printStackTrace();
   }
   return clone;
  }
}

步骤 2

正规的彩票chuangjiankuozhanleshangmianchouxiangleideshitilei。

public class Rectangle extends Shape {
 
  public Rectangle(){
   type = "Rectangle";
  }
 
  @Override
  public void draw() {
   System.out.println("Inside Rectangle::draw() method.");
  }
}
public class Square extends Shape {
 
  public Square(){
   type = "Square";
  }
 
  @Override
  public void draw() {
   System.out.println("Inside Square::draw() method.");
  }
}
public class Circle extends Shape {
 
  public Circle(){
   type = "Circle";
  }
 
  @Override
  public void draw() {
   System.out.println("Inside Circle::draw() method.");
  }
}

步骤 3

正规的彩票chuangjianyigelei,congshujukuhuoqushitilei,bingbatamencunchuzaiyige hashtable zhong。

import java.util.Hashtable;
 
public class ShapeCache {
  
  private static Hashtable<String, Shape> shapeMap 
   = new Hashtable<String, Shape>();
 
  public static Shape getShape(String shapeId) {
   Shape cachedShape = shapeMap.get(shapeId);
   return (Shape) cachedShape.clone();
  }
 
  // 对每种形状都运行数据库查询,并创建该形状
  // shapeMap.put(shapeKey, shape);
  // 例如,正规的彩票要添加三种形状
  public static void loadCache() {
   Circle circle = new Circle();
   circle.setId("1");
   shapeMap.put(circle.getId(),circle);
 
   Square square = new Square();
   square.setId("2");
   shapeMap.put(square.getId(),square);
 
   Rectangle rectangle = new Rectangle();
   rectangle.setId("3");
   shapeMap.put(rectangle.getId(),rectangle);
  }
}

步骤 4

prototypepatterndemo shiyong shapecache leilaihuoqucunchuzai hashtable zhongdexingzhuangdekelong。

public class PrototypePatternDemo {
  public static void main(String[] args) {
   ShapeCache.loadCache();
 
   Shape clonedShape = (Shape) ShapeCache.getShape("1");
   System.out.println("Shape : " + clonedShape.getType());    
 
   Shape clonedShape2 = (Shape) ShapeCache.getShape("2");
   System.out.println("Shape : " + clonedShape2.getType());    
 
   Shape clonedShape3 = (Shape) ShapeCache.getShape("3");
   System.out.println("Shape : " + clonedShape3.getType());    
  }
}

步骤 5

zhixingchengxu,shuchujieguo:

Shape : Circle
Shape : Square
Shape : Rectangle

正规的彩票yishangjiushixiangjiejava yuanxingmoshidexiangxineirong,gengduoguanyujava yuanxingmoshideziliaoqingguanzhujiaobenzhijiaqitazhengguidecaipiaoxiangguandewenzhang!

正规的彩票相关的文章

  • SpringBoot集成Elasticsearch过程实例

    SpringBoot集成Elasticsearch过程实例

    这篇文章主要介绍了SpringBoot集成Elasticsearch过程实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-04-04
  • java 键盘输入的多种实现方法

    java 键盘输入的多种实现方法

    java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象。常用的类有BufferedReader,Scanner。
    2012-03-03
  • Java求s=a+aa+aaa+aaaa+aa...a 5个数相加的值

    Java求s=a+aa+aaa+aaaa+aa...a 5个数相加的值

    求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制
    2016-02-02
  • 浅谈Java编程中string的理解与运用

    浅谈Java编程中string的理解与运用

    这篇文章主要介绍了浅谈Java编程中string的理解与运用,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2016-11-11
  • idea中MavenWeb项目不能创建Servlet的解决方案

    idea中MavenWeb项目不能创建Servlet的解决方案

    这篇文章主要介绍了idea中MavenWeb项目不能创建Servlet的解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-02-02
  • Java随机生成身份证完整示例代码

    Java随机生成身份证完整示例代码

    这篇文章主要介绍了Java随机生成身份证完整示例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • SpringBoot加载应用事件监听器代码实例

    SpringBoot加载应用事件监听器代码实例

    这篇文章主要介绍了SpringBoot加载应用事件监听器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • java智能问答图灵机器人AI接口(聚合数据)

    java智能问答图灵机器人AI接口(聚合数据)

    这篇文章主要介绍了java智能问答图灵机器人AI接口(聚合数据),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-02-02
  • Java获取正规的彩票器IP及端口的方法实例分析

    Java获取正规的彩票器IP及端口的方法实例分析

    这篇文章主要介绍了Java获取正规的彩票器IP及端口的方法,结合实例形式分析了java针对客户端及正规的彩票器端各种常见的信息操作技巧与注意事项,需要的朋友可以参考下
    2017-12-12
  • java原装代码完成pdf在线预览和pdf打印及下载

    java原装代码完成pdf在线预览和pdf打印及下载

    本文主要介绍了java原装代码完成pdf在线预览和pdf打印及下载的方法,具有一定的参考价值,下面跟着小编一起来看下吧
    2016-02-02

最新评论

正规的彩票_正规彩票平台app下载[首页最快线路√] 彩票官网_彩票官网app|网站首页 彩票平台_彩票平台快三-[平台最快线路√] 彩票app下载_彩票app下载官网下载快三_官方入口 彩票平台_彩票平台app-专注彩票门户 彩票官网_彩票官网app下载网址-HOME 彩票平台_彩票平台登录-老品牌最信誉 彩票app_彩票app客户端下载>> 首页 彩票平台_彩票平台免费送彩金18-点击进入>! 彩票平台_彩票平台官网〖2020购彩首选〗 彩票app_彩票app彩票投注平台-Welcome