Java单例模式和工厂方法

单例模式

  • java 23种设计模式之一,作用是保证应用程序启动后保持对象的唯一性

懒汉模式

       public class Singleton{
            private static Singleton obj;//懒汉
            private Singleton() {}//防止外部直接调用
            //让用户调用对象实例的时候保证其唯一性
            public static Singleton getInstance() {
                if(obj==null) {
                    obj=new Singleton();
                }
                return obj;
            }
        }

饿汉模式

      public class Singleton{
            private static Singleton obj = new Singleton ();
            private Singleton (){}
            public static Singleton getInstance(){
                return obj;
            }
        } 

工厂方法

  • java设计模式之工厂设计模式,目的是解耦合,用于生成对象

简单工厂:

   abstract class Fruit{
    abstract String intro();
    }
    class Apple entends Fruit{
        String intro(){
            return "this is an apple";
        }
    }
    class Orange entends Fruit{
        String intro(){
            return "this is an orange";
        }
    }
    class Factory{
        public static Fruit getInstance(int op){
            if(op==0)
                return new Apple();
            else
                return new Orange();
        }
    }

抽象工厂: 当生成的对象较多时,会堆工厂继续分类

   abstract class Vehicle{}
    abstract class Car extends Vehicle{}
    class Audi extends Car{}
    class BMW extends Car{}
    abstract class Jeep extends Vehicle{}
    class Han extends Jeep{}
    abstract class Factory{
        abstract Vehicle getInstance(String brand);
    }
    class CarFactory{
        Car getInstance(String brand){
            if(brand.equals("Audi")){
                return new Audi;
            }else{
                return new BMW();
            }
        }
    }

工厂方法

   class Apple{}
    pulbic class AppleFactory{
        public Apple getApple(){//普通工厂方法
            return new Apple();
        }
        public static Apple getIns(){//静态工厂方法
            return new Apple();
        }
    }

猜你喜欢

转载自blog.csdn.net/wxfghy/article/details/80972241
今日推荐