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

    }
    }
    一回生,二回熟
  • 相关阅读:
    Android入门第六篇之ListView (一)
    mysql触发器的作用及语法
    查询记录时rs.previous()的使用
    Microsoft Visual C++ Runtime Library Runtime Error的解决的方法
    Ubuntu中编译链接Opencv应用的简便方式
    24点经典算法
    CMS系统简介(从简介到使用)
    编程学习资源
    Django是什么
    Thinkphp中的自动验证
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12763951.html
Copyright © 2011-2022 走看看