如何最好地使用所有者类

时间:2015-01-29 08:52:57

标签: c#

在编写程序时,我不断反对相同的挑战,我尝试使用所有者类来控制和管理创建的类中发生的事情但我觉得我偏离了整个哲学。

例如,我可能想要创建一个也具有串行端口类的设备类。我希望其他部分应用程序直接使用串行端口类,但为了使串行端口类能够运行,它需要调用设备类中的方法,而不是我希望公开的nessersarally方法。

有没有更好的方法来解决这个问题

2 个答案:

答案 0 :(得分:0)

创建一个公共Init()方法来调用设备类中所有必需的私有方法,可能使用(可选)参数是灵活的。此Init方法将使用/初始化串口类。

您可以以正常方式使用设备类,即使用公共方法来获取/发送信息等。此外,可以调用串口类中的方法,但设备类的调用者可能不知道这一点

答案 1 :(得分:0)

首先,SerialPort类不应该直接调用所有者,执行不好。使用接口,例如由DeviceClass实现的ISerialPort for SerialPort类。 DeviceClass将SerialPort类创建为private并公开接口。 DeviceClass的接口实现拦截并执行Comms到SerialPort,提供Device为SerialPort实例专用的所需信息。因此,SerialPort的所有通信都由Device间接处理。