基于角色的软件开发
项目描述
Roles
基于角色的开发库。
DCI(数据、上下文、交互)模式的Python实现(http://www.artima.com/articles/dci_vision.html)。
与混入相比,这个角色仅应用于主题实例,而不是主题类(唉,需要构建一个新的类)。
角色可以被分配和撤销。可以将多个角色应用于一个实例。撤销可以按任何特定顺序进行。
主页: http://github.com/amolenaar/roles
发布: http://pypi.python.org/pypi/roles
使用Roles
作为基本示例,考虑一个域类
>>> class Person:
... def __init__(self, name):
... self.name = name
>>> person = Person("John")
该实例应参与一个协作,在其中它承担特定的角色
>>> from roles import RoleType
>>> class Carpenter(metaclass=RoleType):
... def chop(self):
... return "chop, chop"
将角色分配给该人
>>> Carpenter(person) # doctest: +ELLIPSIS
<__main__.Person+Carpenter object at 0x...>
>>> person # doctest: +ELLIPSIS
<__main__.Person+Carpenter object at 0x...>
该人仍然是人
>>> isinstance(person, Person)
True
...并且可以做一些木匠活
>>> person.chop()
'chop, chop'
有关更多示例,请参阅 roles.py
。
上下文
在特定情境中使用角色非常有意义。一个经典的例子是货币转账示例。这里使用两个账户,将一定金额从其中一个账户转账到另一个账户。因此,一个账户扮演源账户的角色,另一个账户扮演目标账户的角色。
示例可以在example.py
中找到。
项目详情
下载文件
下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
roles-1.0.0.tar.gz (7.2 kB 查看哈希值)
构建分布
roles-1.0.0-py3-none-any.whl (7.1 kB 查看哈希值)
关闭
roles-1.0.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 123d843e38c6e578c15533eb2c7cf98aaf53cbaa9fe78dc318dbc61297e2ed61 |
|
MD5 | d0d235c7f6c192a7b6c04e2970d27212 |
|
BLAKE2b-256 | c96f7fd955e74bae50565d8a010ea1a4e45aa06841d6d38111ea736879fc7678 |
关闭
roles-1.0.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 5d7595df077e7a39db7edc36322b52ea861c7da65be2dd329f8b487a56f37494 |
|
MD5 | 480200d5b5375a765307c2da39d12e5e |
|
BLAKE2b-256 | 505712a193eeeff2f4ab62ef5be98a83c18b24bebbab90a358c7f120b7b32408 |