设计模式

设计模式(C++):http://blog.csdn.net/column/details/mydesignpattern.html?&page=1

装饰模式:

public class Wrapper {
    public static void main(String[] arg) {
        Human one = new Chinese(new Man(new Person("张三")));
        Human two = new Chinese(new Woman(new Person("邓丽君")));
        Human three = new American(new Man(new Person("乔布斯")));
        Human four = new American(new Woman(new Person("露茜")));
        System.out.println(one.showInfo());
        System.out.println(two.showInfo());
        System.out.println(three.showInfo());
        System.out.println(four.showInfo());
    }
}

http://blog.csdn.net/aqi00/article/details/51258563

访问者模式:

我们去银行柜台办业务,一般情况下会开几个个人业务柜台的,你去其中任何一个柜台办理都是可以的。我们的访问者模式可以很好付诸在这个场景中:对于银行柜台来说,他们是不用变化的,就是说今天和明天提供个人业务的柜台是不需要有变化的。而我们作为访问者,今天来银行可能是取消费流水,明天来银行可能是去办理手机银行业务,这些是我们访问者的操作,一直是在变化的。

http://blog.csdn.net/lcl_data/article/details/11607377

 策略模式:

每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。 而策略模式就是对算法进行包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。

这里用CS里的人物作为例子,每个人都可以有几个武器,武器之间动态切换,武器拥有统一的攻击命令。

http://blog.csdn.net/lcl_data/article/details/10255125

原文地址:https://www.cnblogs.com/lwngreat/p/6140574.html