Head First设计模式

《Head First设计模式》据说这本书很不错,光是书名就足够吸引我了,因为对这方面我几乎是完全欠缺,只用过单例模式和工厂模式。我觉得编程基本上要学三方面:第一是编程语言,第二是算法,第三是设计模式。

算法其实不急于提高,就目前我做的东西来说,算法上几乎没有遇到问题,数学也还过得去。而设计模式是一直困扰我的东西。

昨晚下单,到货立即闭关研读。

Head First设计模式》上有1条评论

  1. baozhuwanglei 文章作者

    策略模式
    策略模式很巧妙的利用了接口,达到区别于继承的一种组合式的代码复用。

    继承和组合有一点像是模板引擎中的 extends 和 include的区别,但是却完全不是这么简单,下面具体说说策略模式是的细节是怎么实现的:

    首先一般是一个抽象的超类,这个类中会声明一些接口类型的成员变量,并且一般有方法 setxxx来设置这些成员变量。这是用来动态的把接口的实现赋值给成员变量。

    定义接口,这些接口实际上是抽象超类的行为实现,可以有多个实现。
    这样在抽象超类的子类中,我们就可以动态的利用 setxxx来给接口类型的成员变量赋值,或者在子类的构造方法中赋值成员变量,这样这个子类就具有了接口的行为方法。

    其实这就是一种组合式的模式,如果不在接口中实现这种行为,而在在超类中定义,那么无法实现这样的灵活性。

    这也许就是接口本来的意义,一个接口定义一种行为,这种行为可以有多种实现,但是使用接口的对象不用管实现的细节,只需要调用接口的方法。

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注