码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式

时间:2020-04-23 23:10:07      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:vol   else   instance   com   get   main   ignore   pat   MIP   

单例模式

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

}
}

 

设计模式

标签:vol   else   instance   com   get   main   ignore   pat   MIP   

原文地址:https://www.cnblogs.com/zzytxl/p/12763951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!