设计模式以减少代码重复

时间:2018-06-14 08:56:52

标签: c# design-patterns code-duplication

假设我们有两组类,一组包含Files(即File1,File2 ......),第二组叫Blocks(Block1,Block2,...)。文件可以包含不同数量的块属性:

class File1
{
    public Block1 Block1Prop {get;set;}
    public Block8 Block8Prop {get;set;}
}

class File2
{
    public Block1 Block1Prop {get;set;}
    public Block9 Block9Prop {get;set;}
}

class File1
{
    public Block9 Block9Prop {get;set;}
    public Block7 Block7Prop {get;set;}
    public Block4 Block4Prop {get;set;}
    public Block3 Block3Prop {get;set;}
}

class File1
{
    public Block8 Block8Prop {get;set;}
}

. . .

和块只是单独的类:

class Block1
{
    public string SomeProperty {get;set}
}

class Block2
{
    public string SomeProperty {get;set}
}

. . .

因此,为了不反复写入相同的块属性(在FileX中),我将所有文件中出现的块分离为基本抽象类。对于其余的块,我可以为每个块创建一个接口,然后在文件中实现它(但这不会减少代码重复)。

interface IBlock1
{
    Block1 Block1Prop {get;set;}
}

interface IBlock8
{
    Block8 Block8Prop {get;set;}
}

class File1: IBlock1, IBlock8
{
    public Block1 Block1Prop {get;set;}
    public Block8 Block8Prop {get;set;}
}

那么,是否有任何简单的方法(一些已知的设计模式)来避免代码重复,或者应该以这种方式编写这种类型的层次结构?

0 个答案:

没有答案