我不確定ConnectionProxy
和Connection
對象之間的差異。 Connection對象應該有一個標準的接口以允許它們互換使用,以及指定它們之間差異的實現。
Perl中的「接口」是輕量級的。它們只是一個物體必須履行的期望的表述,以便說明物體DOES
那個角色。
至於連接工廠
use English qw<$EVAL_ERROR>;
...
foreach my $con_class (
qw<
Connection::HTTPS
Connection::HTTP
Connection::Telnet
Connection::SSH
>) {
my $conn;
eval { $conn = $con_class->new(HostAndPort => '127.0.0.1:21'); };
return $conn if $conn && !$EVAL_ERROR;
$logger->error($EVAL_ERROR);
}
的最簡單的實現現在,我會傾向於保持連接類的列表中某些配置的地方(最好是YAML,對我來說)。但是,這又是最簡單的故障切換實施。
只是作爲一個開發問題,我覺得爲每個接口進行通用測試是很有用的。如果你說類C DOES
接口I,通用測試可以在將它添加到可用接口實現列表之前驗證這個事實。該測試可以驗證編譯器可以做的相同事情 - 等等。
這是從http://stackoverflow.com/questions/9630554/best-ways-to-handle-the-connection-interface – daxim 2012-03-12 18:51:06