class Salesman { public function Salesman(DataFieldFetcher fetcher) { this.setId(fieldFetcher.getId()); this.setFirstName(fieldFetcher.getFirstName()); this.setLastName(fieldFetcher.getLastName()); this.setDateEntered(fieldFetcher.getDateEntered()); } } class Controller{ function loadSalesData(){ //use DB library to execute the following query return as IDataReader rdr $query = "SELECT s.id AS saleId, s.dateEntered AS saleDateEntered, u.id AS salemanId, u.firstName, u.lastName, u.dateEntered AS salesmanDateEntered FROM salesmen u INNER JOIN sales s ON u.id = s.salesmanId WHERE s.id = ?" ; /* ... ...*/ DataSet ds=databaseDoohickey.GetDataSet(sql); DataSetFieldFetcher salesManFieldFetcher = new SalesmanFieldFetcher(ds); salesman = new Salesman(); salesman.load(salesManFieldFetcher); // ... } }