(四十一)、设计模式

来源:互联网 发布:matlab矩阵逻辑运算 编辑:程序博客网 时间:2024/04/27 22:14

设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。

单例设计模式

构造方法私有,提供创建对象的方法,保证对象单一

懒汉式

调用时才会创建对象

//懒汉式public class King {    private static King k;    // 构造方法私有    private King() {    }    public static King getInstance() {        if (k == null) {            k = new King();        }        return k;    }}

饿汉式

类初始化时创建一个对象

//饿汉式public class King2 {    private static King2 k2 = new King2();    private King2() {    }    public static King2 getInstance() {        return k2;    }}

SingleDemo.java

//单例设计模式public class SingleDemo {    public static void main(String[] args) {        System.out.println(King.getInstance());        System.out.println(King.getInstance());        System.out.println(King2.getInstance());        System.out.println(King2.getInstance());    }}

静态工厂设计模式

定义一个人类接口,具有说话的功能

public interface Human {    void speak();}

八卦炉用来制作人

public class BaGuaLu {    private static BaGuaLu baGuaLu = new BaGuaLu();    private BaGuaLu() {    }    public static BaGuaLu getInstance() {        return baGuaLu;    }    public Human makePerson(String peopleColor) {        Human human = null;        switch (peopleColor) {        case "黑":            human = new Human() {                @Override                public void speak() {                    System.out.println("我是黑种人");                }            };            break;        case "白":            human = new Human() {                @Override                public void speak() {                    System.out.println("我是白种人");                }            };            break;        case "黄":            human = new Human() {                @Override                public void speak() {                    System.out.println("我是黄种人");                }            };            break;        default:            break;        }        return human;    }}

女娲开始造人,传递要造的肤色给八卦炉

//静态工厂设计模式public class NvWa {    public static void main(String[] args) {        BaGuaLu baGuaLu = BaGuaLu.getInstance();        Human black = baGuaLu.makePerson("黑");        black.speak();        Human white = baGuaLu.makePerson("白");        white.speak();        Human yellow = baGuaLu.makePerson("黄");        yellow.speak();    }}

上面的八卦炉就像一个工厂,调用里面的方法就能得到想要的东西

0 0
原创粉丝点击