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

网站建设手机银行限额天津做网站的公司

网站建设手机银行限额,天津做网站的公司,现在哪个行业做网站需求多点,东莞自适应网站建设单例模式 概念: 确保一个类只有一个实例,而且自行实例化并向震哥哥系统提供这个实例 应用: 无状态的,一般以工具类形式,进行提供 代码: 懒汉式,双重检查锁 class Singleton {private sta…

单例模式

概念:

确保一个类只有一个实例,而且自行实例化并向震哥哥系统提供这个实例

应用:

无状态的,一般以工具类形式,进行提供

代码:

懒汉式,双重检查锁

class Singleton {private static volatile Singleton instance = null;private Singleton() {}public static Singleton getInstance() {if (instance == null) {synchronized (Singleton.class) {if (instance == null) {instance = new Singleton();}}}return instance;}
}

备注:使用volatile修饰,是因为new Singleton()可以拆解为3步:

1、分配内存

2、初始化对象

3、指向刚分配的地址

若发生重排序,假设A线程执行了1和3,还没有执行2,B线程来到判断NULL时,不为NULL,B线程就会直接返回还没有初始化的instance了。volatile可以避免重排序

简单工厂模式

概念:

又称为静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同,返回不同类的实例,简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

应用:

不够灵活,新增产品需要修改工厂类;

优点在于实现对象的创建和使用分离

代码:
public class SimpleFactory {public static Product createProduct(String type){if (type.equals("A")){return new ProductA();} else {return new ProductB();}}public static void main(String[] args) {Product p = SimpleFactory.createProduct("A");p.print();}
}abstract class Product{public abstract void print();
}class ProductA extends Product{@Overridepublic void print(){System.out.println("A");}}class ProductB extends Product{@Overridepublic void print(){System.out.println("B");}
}

工厂模式

概念:

定义一个用于创建对象的接口,让子类决定实例化哪个类,工厂方法使一个类的实例化延迟到其子类

应用:

代码:
// 定义产品接口
interface Shape {void draw();
}// 具体产品1
class Circle implements Shape {@Overridepublic void draw() {System.out.println("Drawing a Circle");}
}// 具体产品2
class Square implements Shape {@Overridepublic void draw() {System.out.println("Drawing a Square");}
}// 定义工厂接口
interface ShapeFactory {Shape createShape();
}// 具体工厂1
class CircleFactory implements ShapeFactory {@Overridepublic Shape createShape() {return new Circle();}
}// 具体工厂2
class SquareFactory implements ShapeFactory {@Overridepublic Shape createShape() {return new Square();}
}// 客户端代码
public class FactoryMethodDemo {public static void main(String[] args) {ShapeFactory circleFactory = new CircleFactory();Shape circle = circleFactory.createShape();circle.draw();ShapeFactory squareFactory = new SquareFactory();Shape square = squareFactory.createShape();square.draw();}
}

抽象工厂模式

概念:

一种更高级的工厂模式,用于创建相关或依赖对象的家族,而无需明确指定具体类

代码:
// 定义产品接口1
interface Shape {void draw();
}// 定义产品接口2
interface Color {void fill();
}// 具体产品1
class Circle implements Shape {@Overridepublic void draw() {System.out.println("Drawing a Circle");}
}// 具体产品2
class Square implements Shape {@Overridepublic void draw() {System.out.println("Drawing a Square");}
}// 具体产品3
class RedColor implements Color {@Overridepublic void fill() {System.out.println("Filling with Red Color");}
}// 具体产品4
class BlueColor implements Color {@Overridepublic void fill() {System.out.println("Filling with Blue Color");}
}// 定义抽象工厂接口
interface AbstractFactory {Shape getShape(String shapeType);Color getColor(String colorType);
}// 具体工厂1
class ShapeFactory implements AbstractFactory {@Overridepublic Shape getShape(String shapeType) {if (shapeType == null) {return null;}if (shapeType.equalsIgnoreCase("CIRCLE")) {return new Circle();} else if (shapeType.equalsIgnoreCase("SQUARE")) {return new Square();}return null;}@Overridepublic Color getColor(String colorType) {return null;}
}// 具体工厂2
class ColorFactory implements AbstractFactory {@Overridepublic Shape getShape(String shapeType) {return null;}@Overridepublic Color getColor(String colorType) {if (colorType == null) {return null;}if (colorType.equalsIgnoreCase("RED")) {return new RedColor();} else if (colorType.equalsIgnoreCase("BLUE")) {return new BlueColor();}return null;}
}// 工厂生成器
class FactoryProducer {public static AbstractFactory getFactory(String choice) {if (choice == null) {return null;}if (choice.equalsIgnoreCase("SHAPE")) {return new ShapeFactory();} else if (choice.equalsIgnoreCase("COLOR")) {return new ColorFactory();}return null;}
}// 客户端代码
public class AbstractFactoryDemo {public static void main(String[] args) {AbstractFactory shapeFactory = FactoryProducer.getFactory("SHAPE");Shape shape1 = shapeFactory.getShape("CIRCLE");shape1.draw();Shape shape2 = shapeFactory.getShape("SQUARE");shape2.draw();AbstractFactory colorFactory = FactoryProducer.getFactory("COLOR");Color color1 = colorFactory.getColor("RED");color1.fill();Color color2 = colorFactory.getColor("BLUE");color2.fill();}
}

http://www.dtcms.com/wzjs/351219.html

相关文章:

  • 网站建设必备的功能模块双11销量数据
  • dnf可以去哪个网站做代练宁波seo在线优化哪家好
  • 郴州网站制作公司地址重大军事新闻最新消息
  • 兰州网站推广排名友情链接怎么互换
  • 杭州品牌网站设计制作公司自己接单的平台
  • 一级a做爰片免费网站中国片百度指数人群画像哪里查询
  • vps云主机可以做网站百度小说风云榜今天
  • 建设银行官方网站认证互联网营销师培训教程
  • 什么是网站建设中的目录国内新闻
  • 疫情骗局湖北seo服务
  • 做视频官方网站seo的工具有哪些
  • 厦门网站建设建网站百度推广有效果吗
  • 做网站需要什么特色友链购买
  • 有什么做树状图的网站seo基本概念
  • 马可波罗网站如何做产品推广网站建设流程
  • 电商网站模板素材seo排名点击器曝光行者seo
  • 建网站的几个公司百度系app
  • 别人帮做的网站怎么修改外贸企业网站设计公司
  • 同时做几个网站互相链接网络推广怎么做
  • 网站家建设培训学校韩国网站
  • 网站配置文件在哪里百度联盟点击广告赚钱
  • 棋牌类网站开发搭建网站的步骤和顺序
  • 企业网站模板下载选哪家如何优化培训方式
  • 网站的会员系统怎么做郑州网络推广
  • 站长工具seo源码短视频推广公司
  • 简单房地产网站北京自动网络营销推广
  • 如果做二手车网站自建站seo如何做
  • php网站建设流程最新网站查询
  • jwplayer wordpress优化网站技术
  • 连云港最新疫情消息上海百度推广排名优化