zoukankan      html  css  js  c++  java
  • 设计模式

    单例模式

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

    }
    }
    一回生,二回熟
  • 相关阅读:
    二叉查找树
    Hash算法原理理解
    算法的时间复杂度
    解决Ubuntu14.04下Clementine音乐播放器不能播放wma文件的问题
    Ubuntu 14.04 开启启动器图标最小化功能
    Ubuntu14.04建立WiFi热点
    C语言运算符优先级
    老鸟的Python入门教程
    MD5算法步骤详解
    MD5算法
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12763951.html
Copyright © 2011-2022 走看看