我正在试验一个智能计算器(具有一些奇怪的操作方法)。它操纵共享微积分方法的对象。这些对象是操作数和各种运算符。在这里,我只尝试一种操作员:PolarBinaryOperator(例如,可以是“ power”),但还会有很多其他操作员。
PolarBinaryOperator链接两个操作数。操作数不共享属性,仅共享计算方法之类的方法。
继承>
我坚持使用内容类型解决方案吗?还是还有其他可能的模式?
class Operand(models.Model):
def _nexts(self):
nexts = Operand.objects.filter(
lien_operand_origin__operand_origin=self)
return nexts
def calculate(self):
pass
def calculate2(self):
pass
class Integer(Operand):
value = models.models.IntegerField()
class Operator(Operand):
# Relations
operand_origin = models.ForeignKey(
'Operand', related_name='destination_operand')
operand_destination = models.ForeignKey(
'Operand', related_name='origin_operand')
class PolarBinaryOperator(Operator):
type_operator = models.CharField(
choices=NATURE_CHOICES,
max_length=2,
)