这更像是一个一般性的问题,但我正在尝试使用Python在Peewee之上将其实现为ORM。从python程序中抽象出DB的一个好的OO方法是什么?
在Peewee中,定义继承自peewee.Model的类,并将Peewee字段作为attributes.For示例:
class Person(peewee.Model):
class Meta:
database = db
name = peewee.TextField()
height = peewee.DecimalField()在面向对象的实现中,我们希望有像grow(size),die(),..成为对象的一部分。最好是在这些Peewee模型之上构建一个类来包含这样的功能,还是应该将其放在模型本身中?
我记得在Java程序中,我们曾经有一个DAO (数据访问对象)和DTO (数据传输对象)。peewee模型对象是DAO还是两者都是?有没有某种模式可以在这里应用?
发布于 2018-03-21 04:03:30
Peewee是一个ActiveRecord对象模型,因此数据访问和对象表示之间没有区别。这意味着当您执行查询时,数据将作为模型实例返回给您。在这种情况下,将方法放在模型本身上是很常见的,因为您无论如何都要使用它。
您是否想要在模型之上构建服务层完全取决于您。如果您有相互依赖的模型,这可能是有意义的。
https://stackoverflow.com/questions/49392521
复制相似问题