【发布时间】:2015-04-30 01:19:11
【问题描述】:
我有两 (2) 个问题:首先,如何使用 Python 创建 FlyBehavior interface?其次,我如何implement FlyWithWings 类中的FlyBehavior 接口,使用Python(见下文)?我正在通过 Head First 学习设计模式,我想使用 Python 重写以下 Java 类
public abstract class Duck {
// Reference variables for the
// behavior interface types
FlyBehavior flyBehavior;
QuackBehavior quackBehavior;
public Duck() {
}
// Delegate to the behavior class
public void performFly(){
flyBehavior.fly();
}
// Delegate to the behavior class
public void performQuack(){
quackBehavior.quack();
}
}
这里是所有飞行行为类实现的接口
public interface FlyBehavior {
public void fly();
}
这是会飞的鸭子的飞行行为实现
public class FlyWithWings implements FlyBehavior {
public void fly(){
System.out.println("I'm flying");
}
}
这是我目前使用 Python 所做的。下面是我的 Python 抽象 Duck 类
import abc
class Duck:
__metaclass__=abc.ABCMeta
FlyBehavior FlyBehavior;
QuackBehavior QuackBehavior;
@abc.abstractmethod
def __init__():
return
@abc.abstractmethod
def performFly():
return
@abc.abstractmethod
def performQuack():
return
这是我试图创建接口并尝试实现接口的地方。
【问题讨论】:
-
@immibis 抽象基类,我在这个链接上读到了这个:docs.python.org/2/library/abc.html
标签: java python-2.7 design-patterns