Importer と Processor で構成されるアプリケーションを作成しています。Importer は型を取り、その型の をインスタンス化しますList<>
。プロセッサは、返されたリストを取得する必要があります。
たとえば、呼び出しImporter<Organisation>.GetObjects()
て を返したいとしますList<Organisation>
。次に、List を OrganizationProcessor に渡します。
Importer<Address>.GetObjects()
同様に、呼び出して を返したいと思いList<Address>
ます。次に、List を AddressProcessor に渡します。
Importer<>
and *Processorの作成をファクトリに入れたいと考えています。すべてのコードを削除し、汚染されていないサンプルを以下に作成しました。私の試みは成功せず、私が完全に理解していない分散などのトピックにかかっている可能性があります。
class Program
{
static void Main(string[] args)
{
//What I am currently doing
Importer<Organisation> importer = new Importer<Organisation>();
List<Organisation> list = importer.GetObjects();
OrganisationProcessor processor = new OrganisationProcessor();
processor.Process(list);
//***What I want to do***
string name = "Organisation"; //Passed in from external source
var importer = Factory.GetImporter(name); //returns Importer<Organisation>
var processor = Factory.GetProcessor(name); //returns OrganisationProcessor
processor.Process(importer.GetObjects()); //.Process takes List<Organisation>
}
}
public class Importer<T>
{
public List<T> GetObjects()
{
return new List<T>();
}
}
public class OrganisationProcessor
{
public void Process(List<Organisation> objects)
{
//Do something
}
}
public class AddressProcessor
{
public void Process(List<Address> objects)
{
//Do something
}
}
public class Organisation { }
public class Address { }