设计模式

单例模式

package com.designpattern;

public class SingletonDemo {
    private static volatile SingletonDemo singleton;
    private SingletonDemo(){}

    private static SingletonDemo getInstance() {
        if (singleton == null) {
            synchronized (SingletonDemo.class) {
                if (singleton == null) {
                    singleton = new SingletonDemo();
                }
            }
        }
        return singleton;
    }
}

简单工厂模式

package com.designpattern;

/**
 * 简单工厂模式
 *
 * 抽象Product、Product类、工厂类、
 *
 */
abstract class Phone{
    public abstract void sing();
}

class MiPhone extends Phone {

    @Override
    public void sing() {
        System.out.println("xiaomi");
    }
}

class IPhone extends Phone {
    @Override
    public void sing(){
        System.out.println("Iphone");
    }
}

class PhoneFactory{
    public Phone make(String kind){
        if(kind.equalsIgnoreCase("xiaOmI")){
            return new MiPhone();
        }else if(kind.equalsIgnoreCase("iphOne")){
            return new IPhone();
        }
        return null;
    }
}

public class SimpleFactoryDemo {
    public static void main(String[] args) {
        PhoneFactory pf = new PhoneFactory();
        Phone phone = pf.make("xiaoMI");
        phone.sing();

    }
}

工厂方法模式

package com.designpattern;

/**
* 工厂方法模式
*
* 抽象目标类、具体目标类、工厂接口
*
*/
//abstract class Phone{
// public abstract void sing();
//}
//
//class MiPhone extends Phone {
// @Override
// public void sing() {
// System.out.println("xiaomi");
// }
//}
//
//class IPhone extends Phone {
//
// @Override
// public void sing() {
// System.out.println("iphone");
// }
//}

interface IFactory{
Phone makePhone();
}

class MiFactory implements IFactory{
@Override
public Phone makePhone() {
return new MiPhone();
}
}

class IPhoneFactory implements IFactory {

@Override
public Phone makePhone() {
return new IPhone();
}
}

public class FactoryMethodDemo {
public static void main(String[] args) {
IFactory miFactory = new MiFactory();
IFactory iphoneFactory = new IPhoneFactory();
Phone miPhone = miFactory.makePhone();
Phone iPhone = iphoneFactory.makePhone();
miPhone.sing();
iPhone.sing();

}
}

 

posted @ 2020-04-23 22:06  海绵爱上星  阅读(88)  评论(0编辑  收藏  举报