设计模式

Posted zzytxl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式相关的知识,希望对你有一定的参考价值。

单例模式

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

}
}

 

以上是关于设计模式的主要内容,如果未能解决你的问题,请参考以下文章

十条实用的jQuery代码片段

尝试使用片段保存夜间模式状态

如何更改谷歌地图标记上方的标题和片段设计

炫酷 CSS 背景效果的 10 个代码片段

添加片段时的 FlyOut 菜单设计问题

高效Web开发的10个jQuery代码片段