head first 设计模式
声明:
- 《head first设计模式》23页提问,如何实现自己的鸭鸣器不继承Duck类?本文解答这个问题。
正如该书前面所说,通常【有一个】比【是一个】更好。MallardDuck, RedheadDuck, ModelDuck都是鸭子,所以它们继承了父类Duck,也就继承了父类的属性flyBehavior
, quackBehavior
和父类的方法display()
。
鸭鸣器不是鸭子,不继承父类Duck,那么它需要自己在类中定义以上属性和方法。
public class Duckcall {
FlyBehavior flyBehavior = new FlyNoWay();
QuackBehavior quackBehavior = new Quack();
public Duckcall() {}
public void performFly() {
flyBehavior.fly()
}
public void performQuack() {
quackBehavior.quack();
}
public void display() {
System.out.println("I'm a 'duck'.")
}
}
相关阅读
文章总结了APP种常见的几类导航栏及特点,希望给大家带来些启发。1 一级导航/主导航1.1 标签式导航标签式导航又叫Tab式导航,是目前
首先,这是一本轻松的设计模式书,教你如何利用设计模式复用其他人的经验,如何利用设计模式提高代码的可维护性和可扩展性~ Head First
简介 Builder模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细的控制对象的构造流
http://blog.csdn.net/tanzuai/article/details/48677037
工厂方法模式定义 定义了一个创建对象对象的接口,但由子类决定要实例化的类时哪一个。工厂方法让类把实例化推迟到子类 通用类图