软件编程
位置:首页>> 软件编程>> java编程>> java 单例模式和工厂模式实例详解

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

作者:wuxiao5570  发布时间:2023-04-07 22:10:19 

标签:java,单例模式,工厂模式

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

私有的构造方法

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

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

饿汉式单例


 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();
   }
 }

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

来源:http://blog.csdn.net/wuxiao5570/article/details/70154159

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com