我有使用类用Python编写的测试代码。
测试环境有两种类型的主机:运行应用程序的应用程序主机和运行存储组件的存储主机。
我有两个类,每个类代表主机的类型:
class AppHost_Class(object):
def __init_(self, ip_address):
# etc.
# This method handles interfacing with the application
def application_service(self):
# This method handles the virtual storage component
def virtual_storage(self):
# This method handles caching
def cache_handling(self):
class Storage_Server_Class(object):
def __init_(self, ip_address):
# This method handles interfacing with the storage process
def storage_handling(self):
# This method handles interfacing with the disk handling processes
def disk_handling(self):
问题在于拓扑可以更改。
拓扑1是这样的:
-应用程序主机运行
*申请流程
*虚拟存储过程
*缓存进程
存储主机运行
储存过程
磁盘处理过程
我当前的测试代码处理拓扑#1
但是,我们还希望支持另一种拓扑(拓扑2)
应用程序主机运行
申请流程
存储主机运行
虚拟存储过程
缓存进程
储存过程
磁盘处理过程
如何重构类,以使拓扑1的类及其方法相同,但是对于拓扑2的
Storage_Server_Class
从AppHost_Class
获取某些方法?我当时在考虑让孩子上这样的课:
class Both_Class(AppHost_Class, Storage_Server_Class):
但我不想这样做,因为我不希望
applcation_service
方法可用于Both_Class
。有没有一种方法可以将
AppHost_Class
中的一些方法映射到Storage_Server_Class
中? 最佳答案
这是一个类B的示例,该类完全共享类A中定义的一个方法:
class A:
def a1(self):
pass
def a2(self):
pass
class B:
def __init__(self, instance_of_a):
self.a2 = instance_of_a.a2
a = A()
B(a)