有效 class 层次结构?

Valid class hierarchy?

以下 class 层次结构对 TDD 有效吗?我有两个相关的 class 层次结构,我需要在每个创建者中使用一种类型的信息对象。你知道更好地做到这一点的通用模式吗(也许使用泛型)?这是可测试的吗?

namespace ClassTest
{
    interface IProjectInfo
    {
        void Info1();
        void Info2();
    }

    class ProjectAInfo : IProjectInfo
    {
        public ProjectAInfo(string projectAData)
        {
            ProjectAData = projectAData;
        }

        public string ProjectAData { get; private set; }

        public void Info1() { }
        public void Info2() { }
    }

    class ProjectBInfo : IProjectInfo
    {
        public ProjectBInfo(string projectBData)
        {
            ProjectBData = projectBData;
        }

        public string ProjectBData { get; private set; }

        public void Info1() { }
        public void Info2() { }
    }

    interface IProjectCreator
    {
        void Create1();
        void Create2();
    }

    class ProjectACreator : IProjectCreator
    {
        public ProjectACreator(ProjectAInfo projectAInfo)
        {
            ProjectAInfo = projectAInfo;
        }

        public ProjectAInfo ProjectAInfo { get; private set; }

        public void Create1() { }
        public void Create2() { }
    }

    class ProjectBCreator : IProjectCreator
    {
        public ProjectBCreator(ProjectBInfo projectBInfo)
        {
            ProjectBInfo = projectBInfo;
        }

        public ProjectBInfo ProjectBInfo { get; private set; }

        public void Create1() { }
        public void Create2() { }
    }
}

信息和创建者 class共享通用界面。创建者需要信息 class 才能运行。

谢谢!

这不是 TDD。使用 TDD,目的是先编写测试。如果您先编写测试,那么 class 层次结构将从该测试中产生,并且它将是可测试的。为了更好的理解TDD,请看一下:

The Rules of TDD by Uncle Bob

如果您的问题只是:这是可测试的吗?是的,可以测试。