• 设计模式


    单例模式

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

    }
    }
    一回生,二回熟
  • 相关阅读:
    分析记录:文件不落地的恶意脚本攻击——傀儡进程盗号
    恶意宏学习备忘04——恶意宏调试记录
    恶意宏学习备忘03——手动清除文档宏
    恶意宏学习备忘02
    恶意宏学习备忘
    IRP小结 0x01 IRP & IO_STACK_LOCATION(结合WRK理解)
    文件防删除保护(miniifiter)
    初识虚拟化
    HYPERSPACE
    几个常用内核函数(《Windows内核情景分析》)
  • 原文地址:https://www.cnblogs.com/zzytxl/p/12763951.html
Copyright © 2020-2023  润新知