关于对象的建造模式
问题是这样的,系统中有很多字典,每个字典都是一个Map,map的key和value组成一个字典项。
我使用简单工厂模式做了一个字典工厂,字典工厂根据用户输入产生用户所需的字典。
字典工厂的职责是,获取用户输入参数(就是一个表示字典名称的String),然后根据这个字典名称实例化对应的DAO(通过一串if else语句),使用DAO查询数据库中对应字典表,获得一个List,再把这个List做成一个Map,返回给客户端。
现在的问题是,在增加字典的时候,如何设计才能保证不用修改字典工厂的代码,即对扩展开放,对修改关闭?
这个问题与工厂模式已经抽象工厂模式所要解决的问题还不一样,工厂模式和抽象工厂模式的目的是要建造不同的产品和不同体现的产品。而在这个问题中,产品都是Map,各个产品的区别仅仅在于数据或者说内容的不同。
大家给我出出主意吧,谢啦。