首页 > 开发 > Java > 正文

java 单例模式和工厂模式实例详解

2024-07-13 10:06:26
字体:
来源:转载
供稿:网友

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

私有的构造方法

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

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

饿汉式单例

  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教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表