テンプレートからPDFドキュメントを生成するために使用される静的クラス(VS 2010 / C#)があります。iTextSharpAPIを使用してPDFを生成します。クラスは静的であり、特定のドキュメントを生成するためのパブリックメソッドのみを提供します。
次に、別の種類のドキュメントを生成するために、新しいドキュメントクラスを実装する必要があります。一部のメソッドは2つのクラスで共有され、他のメソッドは各ドキュメントタイプに固有であるため、基本クラスを作成したいと思います。
特定の(サブ)クラスを静的に保ち、基本クラスを特定のクラスの外部からパブリックまたは呼び出し可能にしないようにするためのより良いアプローチはどのようになりますか?
現在、ファクトリパターンまたはコンポジションを調べています。
編集:ここに現在の特定のクラスコード:
public static class SpecificDocGenerator
{
/// <summary>
/// Generates an international certificate.
/// </summary>
public static byte[] GenerateItDoc(DocInfo info)
{
//Here the document is generated and returned as byte array
}
/// <summary>
/// Gets the resource.
/// </summary>
private static byte[] GetResource(string name)
{
//Gets a local resource (as example an image)
}
一般的なメソッドの基本クラスを作成したいと思います(例としてGetResource)。ただし、特定のクラスを静的に保つか、そのインスタンスをさらに作成しないようにします。