这是这个设计的用途
我需要发布一些 API,以便外部世界可以配置用户及其服务。配置用户主要包括根据输入参数(如id、密码、级别等)创建新用户和创建新的连接对象。一旦创建了用户对象,就需要进行服务配置。这是一个两步过程 - 启用服务,修改服务细节。修改服务详细信息由一组操作组成。这些操作仅特定于该服务。对于其他服务,这些操作会有所不同。
这是我当前的实现
一个用户类由 service_manager、connection、group 类组成。service_manager 类管理一组服务(比如 ServiceA、ServiceB ... ServiceN)。每个服务都有一个单独的类。
用户类有一个公共函数assignService。此函数需要一个参数,用于标识服务类。它返回相应服务类的对象。这是相同的伪代码。
serviceObjectA = user.assignService ('A');
稍后,此服务对象可用于执行特定于该服务的操作。
serviceObjectA.performActionA1(...);
serviceObjectA.performActionA2(...);
serviceObjectA.performActionA10(...);
这是问题,我面临着这个实现:
a) performAction 函数需要很少的用户类属性(如 id、密码、位置等)和连接对象。这些用户属性是准备请求所必需的。需要连接对象通过已创建的连接发送此请求。目前,我在服务类构造函数中对其进行管理,其中,我将这些用户属性和连接对象作为构造函数参数传递。它变得有点难以管理,因为各种服务类别需要不同的用户属性。
请提出一些替代方案。
b) 将服务对象暴露给外界真的是一种好习惯吗?
我对 OOP 世界还很陌生,如果我理解错误,请道歉。如果你能用一个伪例子来演示它,我会非常棒。