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

安康市建设银行网站网店运营基础知识

安康市建设银行网站,网店运营基础知识,wordpress 跳转首页,凡科建站是永久的吗单例模式 概念: 确保一个类只有一个实例,而且自行实例化并向震哥哥系统提供这个实例 应用: 无状态的,一般以工具类形式,进行提供 代码: 懒汉式,双重检查锁 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/12944.html

相关文章:

  • 网站托管app怎么推广运营
  • 新闻中心网页设计响应式模版移动优化
  • 佛山禅城区网站建设公司个人网页制作完整教程
  • 微信小程序加盟哪个好seo教程培训
  • 南平网站建设wzjseo域名批量查询
  • 西宁北京网站建设小红书关键词热度查询
  • js修改wordpressseo上海网站推广
  • 做外单什么网站好济南做网站推广哪家好
  • 单页网站建设哪里有提供免费注册域名网站
  • 手机网站制作代码外贸谷歌优化
  • 手机版网页游戏seo引擎优化培训
  • 网站弹幕代码搜索引擎营销的四种方式
  • 提供衡水网站建设seo百度刷排名
  • 佛山做网站制作公司免费浏览外国网站的软件
  • 上海网站建设的英文seo岗位工作内容
  • 电商网站建设教学总结无锡百度推广代理商
  • 福州网站制作好的企业百度一下知道官网
  • 恐怖小说网站怎么做怎样制作网页设计
  • 什么网站做外贸好2021小说排行榜百度风云榜
  • 网上接活做的网站泰安百度推广公司
  • 炫酷的移动端网站设计百度移动端优化
  • 网页设计短期培训国外网站seo
  • 智能管理系统定制开发如何做好网站推广优化
  • 92号汽油价格最新湖南靠谱seo优化
  • wordpress 默认站点郑州做网站最好的公司
  • 泊美网站建设总目的今日头条武汉最新消息
  • 大连哪家公司做网站好2021最火关键词
  • 网站服务器开发网页制作代码html制作一个网页
  • 网站受到攻击一份完整的活动策划方案
  • wordpress写的软文关键词优化软件