常用java设计模式

spring用到哪些设计模式
单例模式
public class SingletonDemo {
    private static SingletonDemo demo = null ;
    private SingletonDemo() {
    }
    public static SingletonDemo getDemo() {
        if ( demo == null ) {
           demo = new SingletonDemo();
        }
        return demo ;
    }
}
class testDemo {
    public static void main(String[] args) {
        SingletonDemo singletonDemo2 = SingletonDemo. getDemo ();
        SingletonDemo singletonDemo1 = SingletonDemo. getDemo ();
    }
}

工厂模式
/**
* 总体来说,凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。
* 在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,
* 第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种 —— 静态工厂方法模式。
*/
public interface SaySometing {
    public void say();
}

class Man implements SaySometing {
@Override
    public void say() {
        System. out .println( "i am a man" );
    }
}

class Woman implements SaySometing {
@Override
    public void say() {
        System. out .println( "i am a woman" );
    }
}

class Factory {
    public SaySometing speak(String person) {
        if ( "man" .equals(person)) {
            return new Man();
        } else {
            return new Woman();
        }
    }
}

class MoreFactory {
    public SaySometing ManSay() {
        return new Man();
}

public SaySometing WomanSay() {
        return new Woman();
    }
}

class MoreStaticFactory {
    public static SaySometing ManSay() {
        return new Man();
}

public static SaySometing WomanSay() {
    return new Woman();
    }
}

class RunTestDemo {
    public static void main(String[] args) {
        // 单个工厂方法模式
        Factory factory = new Factory();
        SaySometing saySometing = factory.speak( "woman" );
        saySometing.say();

        // 多个工厂方法模式
        MoreFactory moreFactory = new MoreFactory();
        SaySometing saySometing1 = moreFactory.ManSay();
        saySometing1.say();

        // 多个静态工厂方法模式
        SaySometing saySometing2 = MoreStaticFactory. WomanSay ();
        saySometing2.say();
    }
}

猜你喜欢

转载自blog.csdn.net/sinat_29774479/article/details/79714318