文章目录
一级目录
public interface Flyable {
void fly();
}
public class FlyAbility implements Flyable {
@Override
public void fly() { //... }
}
//省略Tweetable/TweetAbility/EggLayable/EggLayAbility
public class Ostrich implements Tweetable, EggLayable {//鸵鸟
private TweetAbility tweetAbility = new TweetAbility(); //组合
private EggLayAbility eggLayAbility = new EggLayAbility(); //组合
//... 省略其他属性和方法...
@Override
public void tweet() {
tweetAbility.tweet(); // 委托
}
@Override
public void layEgg() {
eggLayAbility.layEgg(); // 委托
}
}
本文通过一个Java代码示例介绍了如何在Ostrich类中实现组合和委托模式。Flyable接口定义了飞行行为,而FlyAbility实现了该接口。Ostrich类同时实现了Tweetable和EggLayable接口,并通过组合TweetAbility和EggLayAbility对象来委托执行相应的行为。这种方式展示了面向对象设计原则在实际问题解决中的应用。
26万+

被折叠的 条评论
为什么被折叠?



