负责业务处理的 Service 类的方法,比如生成订单 create_order()方法,定义的时候要不要定义成 @staticmethod 静态方法?不设置静态方法,通过 Service().create_order(·······)的方式也可以调用。这样有什么问题么?
1
qiyuey Apr 15, 2019 via Android
Java 里都是 IOC 的单例 Bean,一般不定义为 Static 的,Python 也应该是类似的吧
|
2
xxx777 Apr 17, 2019
```
class BaseService: model: Model = None _service = dict() @classmethod def instance(cls): """Method instance :return: cls """ instance = cls._service.get(cls.__name__, None) if not instance: instance = cls.__new__(cls) cls._service.setdefault(cls.__name__, instance) return instance ``` 可以在基础类写一个 instance 方法,调用的时候 UserService.instance().find_user_by_id() 这样调用是单例 Service().create_order(·······) 这种每次都会创建新对象的 |