2014-06-27 24 views
0

我正在处理一个项目,我必须实现一个相当复杂的数据结构P成几种方式(所有这些都在Python中)。希望这会有所帮助,这里是我如何构造我的项目的一部分:最佳类命名约定与多个实现

+ P/ 
|----+ A/ 
| |----p.py 
| 
|----+ B/ 
| |----p.py 
| 
|----factory.py 
|----abstractP.py 

p.py我有P的不同实现为类。它们全部命名相同,如P(它们全都符合接口,因为它们继承了类,其延伸ABCMeta)。

我打算使用工厂模式通过指定参数来正确实例化类P的对象。目前,在factory.py我用python的进口技巧避免名称冲突:

from P.A.p import P as P_A 
from P.B.p import P as P_B 

我这样想,我可以在接下来的项目indipendently使用p.py文件,所以我没有命名的类P_AP_B从头开始。

这是不好的做法?在这种情况下,实现的最佳命名约定是什么?

回答

1

你应该在实现它们的某个特定方面之后命名它们。

采取例如一对夫妇列表类型的容器的典型实施的:

  • 抽象类列表(定义了基本接口的“列表” /行为)
  • LinkedList类(链接的节点实施
  • 类的ArrayList(基于阵列的实现,它的行为)

你的名字,他们是如何implemen后的具体实现的这种行为)特德。

+0

'A'和'B'是实现名称部分,自己命名。总之,你的观点是从一开始就使用'P_A'和'P_B',对吗? – rano

+0

基本上,是的,但我不认为“A”和“B”是任何事物的好名字。这件事也不是“P”,但我假设你只是用它们作为占位符? –

+0

我当然使用它们作为占位符:D – rano