关于策略模式的应用的思考

这两天做数据访问组件,经过不断的修改与改进终于功能将要完成最后的代码复查工作,在检查的过程中发现这样一个问题,组件中有一个IDbContext的接口专门用于处理与数据库相关的内容,主要处理生成参数名啊,属性数据向数据库数据转换,数据库数据向属性转换等方面的职务.在其它委多类中都需要使用,很多的类都需要这个信息来生成其它相关的内容.对于些类可能有两种方式来设置相关的IDbContext对象,一种方式是构造时以参数的形式输入,一种是以继承的方式在子类的为这些类创建IDbContext对象,两种方式都能够实现.先分别来看一下两种方式的优势与不足:
   构造参数指定的方式:这种方式最大的好处是可以减少子类的数量,减少维护的难度,不足是需要使用者对代码的设计等方面有深入的了解.增加使用难度.
 在子孙万代类的创建:这种方式最大的好处是可以在使用是直接建立对的对象,减少在抽象层次上的理解等,使用比较方便.不足之处是会大量的增加子类的数量.
 我在进行代码的重构过程中,将通过对应IDbContext对象就能够生成对应信息,并且这个类对于不同数据库修改的可能性都很少的,我使用以构造参数的形式指定.而对于用户可能会直接创建的对象,并且这个对象针对不同数据库重写的可能性很高的,则以子类中创建.
 也不知道这样的设计是否能够很好的处理这个问题.

你可能感兴趣的:(策略模式)