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

温州市住房建设局网站用什么网站开发

温州市住房建设局网站,用什么网站开发,WordPress程序主题转为app,扁平网站欣赏2023-05-09 设计模式#xff08;单例#xff0c;工厂#xff09; 单例模式 顾名思义#xff0c;就是整个系统对外提供的实例有且只有一个 特点#xff1a; ​ 1、单例类只有一个实例 ​ 2、必须是自己创建唯一实例 ​ 3、必须给所以对象提供这个实例 分类#xff…2023-05-09 设计模式单例工厂 单例模式 顾名思义就是整个系统对外提供的实例有且只有一个 特点 ​ 1、单例类只有一个实例 ​ 2、必须是自己创建唯一实例 ​ 3、必须给所以对象提供这个实例 分类一般分为饿汉式单例直接实例化和懒汉式单例使用时才实例化 饿汉式单例 public class SingletonTest {//构造器私有化防止外部调用private SingletonTest() {}//直接实例化private static SingletonTest sin new SingletonTest();public static SingletonTest getInstance(){return sin;} }懒汉式单例 同步锁当然还有简单的去掉synchronized只是存在安全问题 public class SingletonTest1 {//构造器私有化防止外部调用private SingletonTest1() {}private static SingletonTest1 sin null;//使用同步锁保证一定会创建并且只会创建一次public static synchronized SingletonTest1 getInstance(){if(sin null){sin new SingletonTest1();}return sin;} }双重检测锁 public class SingletonTest2 {//构造器私有化防止外部调用private SingletonTest2() {}//使用volatile在这里的作用是禁止指令重排//sin new SingletonTest2();不是一个原子操作//第一步、申请内存第二步、初始化第三步、地址引用给sin//如果第三步在第二步前面就执行了此时另一个现场通过getInstance获取实例时进来判断就不为null了直接返回而这个时候其实还并没有实例化//synchronized只能保证代码块相较于外面是正常顺序代码块内部还是可能由于指令优化导致第三步在第二步前面就执行了private static volatile SingletonTest2 sin null;//为什么要判断两次呢//第一次是为了减少同步不用每次进来都去加锁//第二次是如果现在有两个现场同时竞争锁那必然有一个是处于阻塞状态的//当处于阻塞状态的线程拿到锁后前面的线程肯定是已经创建过实例了//如果这个时候不判断一下的话就会有实例化一次public static SingletonTest2 getInstance(){if(sin null){synchronized (SingletonTest2.class){if(sin null){sin new SingletonTest2();}}}return sin;} }内部类 public class SingletonTest3 {//构造器私有化防止外部调用private SingletonTest3() {}private static SingletonTest3 sin null;public static SingletonTest3 getInstance(){return SingletonClass.singleton;}//内部类只有在使用的时候才会初始化其中初始化是jvm控制的单线程操作保证了线程安全也实现了懒汉式private static class SingletonClass{private static SingletonTest3 singleton new SingletonTest3();} }工厂模式 工厂模式主要是为了屏蔽创建对象的过程主要分为三类静态工厂普通工厂抽象工厂 静态工厂简单工厂 public interface FactoryTest {void doSome(); }public class FactoryTest1 implements FactoryTest {Overridepublic void doSome() {System.out.println(FactoryTest1);} }public class FactoryTest2 implements FactoryTest {Overridepublic void doSome() {System.out.println(FactoryTest2);} }public class StaticFactory {public static FactoryTest creatTest(String name){if(FactoryTest1.equals(name)){return new FactoryTest1();}else if(FactoryTest2.equals(name)){return new FactoryTest2();}return null;} }public class Test1 {public static void main(String[] args) {//通过StaticFactory工厂创建对应的实例类FactoryTest factoryTest1 StaticFactory.creatTest(FactoryTest1);factoryTest1.doSome();FactoryTest factoryTest2 StaticFactory.creatTest(FactoryTest2);factoryTest2.doSome();} }每次新增一个FactoryTest时需要修改StaticFactory.creatTest()方法这样不合理所以有了普通工厂模式 普通工厂 public interface FactoryTest {void doSome(); }public class FactoryTest1 implements FactoryTest {Overridepublic void doSome() {System.out.println(FactoryTest1);} }public class FactoryTest2 implements FactoryTest {Overridepublic void doSome() {System.out.println(FactoryTest2);} }public interface ICommonFactory {FactoryTest createTest(); }public class CommonFactory1 implements ICommonFactory {Overridepublic FactoryTest createTest() {return new FactoryTest1();} }public class CommonFactory2 implements ICommonFactory {Overridepublic FactoryTest createTest() {return new FactoryTest2();} }public class Test1 {public static void main(String[] args) {//通过CommonFactory1工厂创建对应的实例类new CommonFactory1().createTest().doSome();new CommonFactory2().createTest().doSome();} }每次新增一个FactoryTest时只需要新增一个对应的CommonFactory工厂实现类就行对于之前的工厂和对象不影响 抽象工厂 现在有手机和平板可以使用上述的普通工厂来创建但现在给手机和平板分了牌子有华为手机和苹果手机华为平板和苹果平板这样一个产品族的概念分为手机和平板两个产品族手机产品族里面包含了华为手机和苹果手机两个产品那么就可以使用抽象工厂模式。 //手机产品族 public interface Phone {void doSome(); } public class PhoneHuawei implements Phone {Overridepublic void doSome() {System.out.println(华为手机);} } public class PhonePinguo implements Phone {Overridepublic void doSome() {System.out.println(苹果手机);} }//平板产品族 public interface Tablet {void doSome(); } public class TabletHuawei implements Tablet {Overridepublic void doSome() {System.out.println(华为平板);} } public class TabletPinguo implements Tablet {Overridepublic void doSome() {System.out.println(苹果平板);} }//工厂 public interface AbsFactory {Phone buyPhone();Tablet buyTablet(); } //华为工厂 public class HuaweiFatory implements AbsFactory{Overridepublic Phone buyPhone() {return new PhoneHuawei();}Overridepublic Tablet buyTablet() {return new TabletHuawei();} } //苹果工厂 public class PinguoFatory implements AbsFactory{Overridepublic Phone buyPhone() {return new PhonePinguo();}Overridepublic Tablet buyTablet() {return new TabletPinguo();} }public class Test1 {public static void main(String[] args) {HuaweiFatory huaweiFatory new HuaweiFatory();huaweiFatory.buyPhone().doSome();huaweiFatory.buyTablet().doSome();PinguoFatory pinguoFatory new PinguoFatory();pinguoFatory.buyPhone().doSome();pinguoFatory.buyTablet().doSome();} }
http://www.dnsts.com.cn/news/104118.html

相关文章:

  • .我爱你 网站wordpress 滑动解锁
  • 建设市场监督管理网站建设网站如何进行网站备案
  • 客村网站建设商标网商标购买
  • 新乡网站搜索引擎优化网站新域名查询
  • 网站建设上wordpress标签调用
  • 腾讯公司网站苏州市住房和城乡建设局网站
  • 中国建设银行网站宁波淘宝可以在哪些网站上面打做推广
  • 门户网站 方案wordpress站点很慢
  • 申请了域名 网站怎么建设呢网站导航栏图标
  • 做网站开视频网站自学网站有哪些
  • 全网型网站建设方案网络工程就业前景
  • 网站 尺寸国际羽联最新排名
  • php网站 源码网站建设宣传广告语
  • 平潭综合实验区建设工程网站wordpress图片特效
  • 市住建设局网站彩票网站开发彩票网站搭建
  • 网站开发专员的面试题海外网络服务器官网
  • 门户网站兴化建设局上海网络维护哪家品质好
  • 做电商网站的步骤wordpress评论插件
  • 网站建设业务流程图简单网页模板图片
  • 郑州做网站推广外包湖北做网站公司
  • 包头市网站建设58同城网站建设
  • ps做产品的网站门户网站开发人员招聘信息
  • 手机网站seo教程下载目前最好的推广平台
  • 网站建设使用软件西安学校部门定制网站建设公司
  • 潍坊市建设工程质量安全监督站网站网站模板之家官网
  • 个人网站可以做资讯小说类手机网站制作平台免费
  • 长春seo网站管理电商网站开发模版
  • 湖北省建设厅网站百度快照 网站描述 更新
  • 晋江网站建设价格多少dns修改国外网站
  • 增加网站和接入备案吗品牌建设工作