Hi Joe,
> But occasionally after the class is instantiated and the properties are set, the device needs to be changed to a different one. This requires access to the device table.
This sounds a bit like the design is not yet completed.... The class we're talking about here
is the device, at least it's abstraction. Why would the device suddenly decide that it needs to change itself? Could it be that you actually have several classes like CommunicationChannel (plus subclasses for serial, ethernet and ftp), Device and a Connection class. The Connection class could be the one your application talks to and which decides which device it talks to.
--
Christof