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

建筑官方网站如何做游戏推广网站

建筑官方网站,如何做游戏推广网站,网站开发技术招聘,微信小程序开发工具怎么用1、设计模式概念及分类 简单来说设计模式是被广大程序员们总结并认可的编码套路#xff0c;其中最常用的莫过于单例模式与工厂模式#xff0c;而单例模式也有更加细的分类#xff0c;一起来学习一下这些模式的用法和特点吧。 2、单例模式 一个类只能被实例化出来一个对象…1、设计模式概念及分类 简单来说设计模式是被广大程序员们总结并认可的编码套路其中最常用的莫过于单例模式与工厂模式而单例模式也有更加细的分类一起来学习一下这些模式的用法和特点吧。 2、单例模式 一个类只能被实例化出来一个对象 2.1、饿汉式 无论如何都会创建出来一个对象 思路 在类中直接实例化一个用来返回的对象再为外界提供一个获取该对象的方法 缺点有可能造成空间浪费 代码解释 /** 单例模式-饿汉式 */ public class ClassA { //唯一的、全局的、私有的、用来返回的对象实例 private static ClassA canew ClassA(); //方法用来被外界调用从而获取该类的唯一实例 //static为了使外界直接通过类名调用该方法 public static ClassA getClassA(){ return ca; 1 } //私有化构造避免外界通过构造创建该类的对象 private ClassA(){ } } public class Test { public static void main(String[] args) { ClassA ca1ClassA.getClassA(); ClassA ca2ClassA.getClassA(); System.out.println(ca1ca2);//true } 相当于类加载ca1和ca2都是类对象为同一个对象要与类的对象有所区分。 2.2、懒汉式 思路只有当需要创建唯一实例时才会在对应方法中进行实例化 使用synchronized来同步方法 缺点同步方法效率太慢线程效率低 代码解释 /** 单例模式-懒汉式 */ public class ClassB { //声明用来返回的对象引用 private static ClassB cbnull; //synchronized:避免线程安全问题 public synchronized static ClassB getClassB(){ if (cbnull){ 1 //非空判断避免重复创建 cbnew ClassB(); } return cb; } //私有化构造 private ClassB(){ } } 这里利用了synchronized来防止重复创建实例化对象如果事先没有创建那就新创建不会浪费空间。 2.2.1、懒汉式进阶版 思路在保证线程安全的基础上最大程度提高线程效率 使用synchronized来同步代码块 代码演示 /** 单例模式-懒汉式进阶版 */ public class ClassB2 { //声明用来返回的对象引用 private static ClassB2 cbnull; //synchronized:避免线程安全问题 public static ClassB2 getClassB2(){ if (cbnull){ 1 //非空判断避免重复创建 synchronized (ClassB2.class){ if (cbnull){ 1 //二次校验如果出现了线程安全问题最大程度保证数据安全 cbnew ClassB2(); } } } return cb; } //私有化构造 private ClassB2(){ } } 同步代码块会使程序运行效率提升因为此时只需时间片就可以执行此线程。 2.2.2、懒汉式之懒加载 思路在懒汉式的基础上将获取自己类实例的任务交给静态内部类完成 public class ClassC { //声明用来返回的对象引用 private static ClassC ccnull; //静态内部类获取ClassC的唯一实例 private static class ClassC2{ 1 //synchronized:避免线程安全问题 2 public static ClassC get(){ 3 4 5  if (ccnull){ //非空判断避免重复创建 synchronized (ClassC.class){ if (ccnull){ 1 //二次校验如果出现了线程安全问题最大程度保证数据安全 ccnew ClassC(); } } } return cc; } } public static ClassC getClassC(){ return  ClassC2.get(); 1 } //私有化构造 private ClassC(){ } } 这种方式效果跟懒汉式的进阶类似只不过是将加载交给了静态内部类效率更高。 3、工厂模式 特点 常用于框架 自身不再直接创建对象交给 “工厂” 完成需要对象时直接调用工厂的指定方法获取 步骤 书写实体类用来构建对象 书写.properties配置文件存放工厂使用反射时需要的类信息 书写工厂类创建对象 书写测试类 用一个实例演示 3.1、书写实体类 public class Student { private String name; private int age; private double score; //此处省略getter与setter方法 public Student() { } public Student(String name, int age, double score) { this.name name; this.age age; this.score score; } Override public String toString() { return Student{ name name , age age , score score }; } } 3.2、新建配置文件.properties 右键项目名创建一个后缀名为.properties的配置文件 文件内容 键自定义值类的全限定名 例如StudentClassNamecom.bz.entity.Student 结构特点 键不可重复 等号左右无双引号 整条语句不要存在多余空格 末尾无分号 一行只能有一个键值对 3.3、书写工厂类并创建对象 /** 工厂类 */ public class MyFactory { //书写获取Student实例的方法 //static方便直接通过类名调用 public static Student getStudent(){ Student stunull; try ( //创建字节输入流对象 FileInputStream fis new FileInputStream(Factory.properties); //添加缓冲流 BufferedInputStream bis new BufferedInputStream(fis); ) { //创建用来接收配置文件信息的Properties集合Properties p new Properties();//通过load方法将配置文件读取值集合中p.load(bis);//获取全限定名String str p.getProperty(StudentClassName);//获取类对象Class c Class.forName(str);//利用无参构造构建类的对象stu(Student) c.newInstance(); }catch (FileNotFoundException e){ System.out.println(文件路径不正确); }catch (IOException e){ System.out.println(读取失败); }catch (Exception e){ System.out.println(未知异常);e.printStackTrace(); } return stu; } } 3.4、对工厂类测试 public class TestMyFactory { public static void main(String[] args) { 1//利用工厂获取学生对象 2 Student stu MyFactory.getStudent(); 3 stu.setName(张三); 4 stu.setAge(20); 5 stu.setScore(78); 6 System.out.println(stu); } }
http://www.dnsts.com.cn/news/159448.html

相关文章:

  • 佛山网站建设与设计公司wordpress 淘宝模板
  • 网站是新媒体平台吗有哪些免费的视频网站
  • p2p网上贷款网站建设方案.docx天水营销型网站建设
  • 怎样做网站卖网站做网站后台的电子文库
  • 自建网站和租用空间网站用网站模板做新网站
  • 做海报好的psd网站广州网站建设年底促销
  • 专业的建设网站哪个好个人能建设网站吗
  • 网站改版怎么办网页制作个人简历模板教程
  • 网站运营前期中期后期only网站建设分析
  • 北京网站建设 seo公司品牌网站建设专家
  • 网页建设与网站设计心德体会seo的中文名是什么
  • 长沙100强企业排名搜索引擎优化案例分析
  • 黄冈网站建设优化排名外国做挂的网站是多少
  • 网站代理备案表阳江房产网签查询
  • wordpress建站是什么建设网站的安全性介绍
  • 合肥建设厅网站南京网站制作公司排名
  • 建设网站时候应该注意哪些自己电脑做网站空间
  • jsp网站开发详解 下载注册建筑设计师
  • 网站介绍经过下拉怎么做唐山网页搜索排名提升
  • 上海网站关键词优化服务小俊哥网站建设
  • 外贸网站推广平台蓝颜seo牛做ktv的网站
  • dedecms手机网站开发杭州精品网站建设公司
  • 山东省住房城乡建设部网站湖南建设厅网站二建注销
  • 网站如何做微信推广方案cute主题破解版WordPress
  • 白酒企业网站源码学校网站报价单
  • 重庆有的设计网站大全wordpress淘宝客插件破解版
  • 做网站如何分类产品四川互联网广告人
  • 做网站如何分页什么网站做招聘比较好
  • 网站做跳转影响排名吗招聘网站代理
  • 摄影图片网站淘宝入驻网站建设