У меня есть набор объектов, которые будут считаны из источника данных один и записаны в источник данных два.
Соблазнительно создать что-то вроде интерфейса IAddableToDataSourceTwo:
public interface IAddableToDataSourceTwo
function addToDataSourceTwo(connection As DataSource2Connection) as Boolean
public class customer implements IAddableToDataSourceTwo
public function addToDataSourceTwo(connection as DataSourceConnection) as Boolean
insertSQL = "insert into customers values....."
return connection.nonQuery(insertSQL)
Однако, похоже, что это может быть скользкий уклон.Должен ли объект знать, как добавить себя в источник данных?
Альтернативный вариант - сделать что-то вроде этого ...
public class DataSource2Writer()
public function writeCustomer(connection, customer as Customer)
insertSQL = "insert customer into customers values....."
return connection.nonQuery(insertSQL)
public function writeInvoice(connection, invoice as Invoice)
insertSQL = "insert into Invoices values....."
return connection.nonQuery(insertSQL)
Это выглядит намного меньше ОО, но разъединяетКлиент объект из источника данных более безопасно.
Предложения?