单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。

私有的构造方法

指向自己实例的私有静态引用

以自己实例为返回值的静态的公有的方法

饿汉式单例

public class Singleton {

private static Singleton singleton = new Singleton();

private Singleton(){}

public static Singleton getInstance(){

return singleton;

}

}

懒汉式单例

public class Singleton {

private static Singleton singleton;

private Singleton(){}

public static synchronized Singleton getInstance(){

if(singleton==null){

singleton = new Singleton();

}

return singleton;

}

}

工厂方法模式代码

interface IProduct {

public void productMethod();

}

class Product implements IProduct {

public void productMethod() {

System.out.println("产品");

}

}

interface IFactory {

public IProduct createProduct();

}

class Factory implements IFactory {

public IProduct createProduct() {

return new Product();

}

}

public class Client {

public static void main(String[] args) {

IFactory factory = new Factory();

IProduct prodect = factory.createProduct();

prodect.productMethod();

}

}

抽象工厂模式代码

interface IProduct1 {

public void show();

}

interface IProduct2 {

public void show();

}

class Product1 implements IProduct1 {

public void show() {

System.out.println("这是1型产品");

}

}

class Product2 implements IProduct2 {

public void show() {

System.out.println("这是2型产品");

}

}

interface IFactory {

public IProduct1 createProduct1();

public IProduct2 createProduct2();

}

class Factory implements IFactory{

public IProduct1 createProduct1() {

return new Product1();

}

public IProduct2 createProduct2() {

return new Product2();

}

}

public class Client {

public static void main(String[] args){

IFactory factory = new Factory();

factory.createProduct1().show();

factory.createProduct2().show();

}

}

希望本文对各位朋友有所帮助

java 工厂 单例_java 单例模式和工厂模式实例详解相关推荐

  1. java打印菱形图案_java打印出菱形图案实例详解

    第一步:首先对图像进行解析 想要打印该图形必须要进行多层循环嵌套,分两个部分进行打印. 第一部分为上半部分前四行,他们是递增的关系,后半部分后三行为递减关系,由此可以得出我们需要写两个打的循环.并且由 ...

  2. java 窗口 单例_java单例模式实现面板切换

    本文实例为大家分享了java单例模式实现面板切换的具体代码,供大家参考,具体内容如下 1.首先介绍一下什么是单例模式: java单例模式是一种常见的设计模式,那么我们先看看懒汉模式: public c ...

  3. java 内部类 单例_Java单例模式的几种实现

    一:静态内部类实现单例模式 原理:通过一个静态内部类定义一个静态变量来持有当前类实例,在类加载时就创建好,在使用时获取. 缺点:无法做到延迟创建对象,在类加载时进行创建会导致初始化时间变长. publ ...

  4. java socket 单例_Java 单例模式的几种实现方式

    单例模式的本质是在运行过程中,某个类只能实例化一个对象:下面是单例模式最基本的实现方式 package com.fuck.singleton; public class Singleton { pri ...

  5. java多态讲解例子_Java多态性定义与用法实例详解

    本文实例讲述了Java多态性定义与用法.分享给大家供大家参考,具体如下: 多态性是通过: 1 接口和实现接口并覆盖接口中同一方法的几不同的类体现的 2 父类和继承父类并覆盖父类中同一方法的几个不同子类 ...

  6. python类是实例的工厂_Python设计模式之工厂方法模式实例详解

    本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...

  7. java显示参数,Java中的隐式参数和显示参数实例详解

    在学习java的过程中,我们会遇到许多的问题.下面我们就来看看什么是隐式参数和显示参数. 显式参数,就是平时见到的在方法名括号中间的参数,就是所谓能看得见的参数www.cppcns.com. 隐式参数 ...

  8. java 静态 编译_Java中的动态和静态编译实例详解

    Java中的动态和静态编译实例详解 首先,我们来说说动态和静态编译的问题. Q: java和javascript有什么区别? 总结了一下:有以下几点吧: 1.首先从运行环境来说java代码是在JVM上 ...

  9. mongodb java查询_java操作mongoDB查询的实例详解

    java操作mongo查询的实例详解 前言: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库 ...

最新文章

  1. 2018.1.15 6周1次课
  2. matconvnet中使用fastrcnn遇到的问题
  3. docker之Dockerfile指令介绍
  4. java string contains indexof,java.lang.String.contains()方法实例
  5. DOS批处理高级教程
  6. Android ADB 环境变量配置
  7. 安川机器人外部急停信号点不开_安川机器人示教器常见故障维修方法
  8. 谷歌浏览器元素定位神器 -- chropath插件
  9. 扫雷小游戏(两小时完成)
  10. 上海车展:17.88万圆百万跑车梦,哪吒GT开启跑车新纪元
  11. java 数组怎么求和,感动,我终于学会了Java对数组求和
  12. 无盘疑难杂症的处理和网络的设置(转)
  13. python 删除pdf页面_Python脚本使用pyPDF删除空白页面
  14. wpe解密系列001
  15. matlab中size()函数的用法
  16. Vue - 本地上传 Excel 文件页面表格预览(配合 ElementUI / 带分页)
  17. python系统字体_Python-matplotlib-中文字体显示和设置
  18. Java简单实现单摆模拟
  19. 微软即将关闭基本身份验证,对企业与员工有什么影响?
  20. 【企业安全实战】数据库审计部署实践

热门文章

  1. Android Binder设计与实现 – 设计篇
  2. 如何在 5 分钟内建立一个数据驱动的新型冠状病毒肺炎应用程序
  3. R语言绘制简单行程图
  4. Linux13-bash脚本编程基础及配置文件
  5. Cell:新方法PopCOGenT鉴定微生物基因组间的基因流动
  6. R语言:聚类分析hclust
  7. CNS接连发文背书,原来生姜这么神奇
  8. 如何第一时间了解研究领域最新动态?
  9. 香港大学工程学院计算机教授,香港大学郑振刚教授访问软件园校区
  10. oracle自动分区maxvalue,分区表中的maxvalue参数设置-Oracle