我要求根据客户端配置文件配置当前的Web应用程序。所以基本上,允许应用程序根据客户的身份进行扩展和自定义。我目前开始的要求很简单,即使Web应用程序中的文本可配置。所以ATM,将有2个可能的配置文件,并根据您选择的配置文件(通过AppSetting或数据库),所有标签都需要相应地呈现。我可以想到很多这样做的方法。我不想做的一件事是将标签值存储在数据库表中,因为ATM不需要通过接口修改标签,所以我想的可能是资源文件?
此外,我的下一个要求是根据个人资料打开/关闭网站中的所有功能,因此我需要考虑这一点。有时,一个功能将共享90%的逻辑,因此复制到该功能并对该配置文件进行10%更改然后具有相同功能的2个副本且差异最小是不可行的。所以我也在寻找解决方案。也许整体设计可以满足这两个要求?
任何建议都将受到高度赞赏。 感谢
答案 0 :(得分:-1)
根据我的理解,您需要更新网站上的标签,并根据所选的个人资料提供一些功能。
所以要做到这一点,我想这样做:
首先实现MVC模式,我们的网站将在View中,Model将是Profile类,控制器将托管所有业务逻辑。
如果我们不想使用数据库,我们可以序列化Profile类的对象并存储(对于ref ),因为我们可以有一个File对象,它是一个配置文件,我们可以存储该配置文件可用功能的名称。
在运行时读取该配置文件的所有可用功能,从而填充视图(网站)。这可以通过使用反转控制模式来完成。像这样:
public interface IFeatures{...}
public class Feature1 implements IFeatures{...}
public class Feature2 implements IFeatures{...}
public class Profile{
private String name;
private String pwd;
private File configFile;
...
}
public class Controller{
public List<?> getFeauturesForProfile(Profile p){
List<IFeatures> features;
List<String>feautures = scanConfigFileForFeatures(p.getConfigFile());
for(String feature : features)
features = Class.forName(feature).newInstance();
return features
}
}
由于我只熟悉java,所以我在java中编写了语法。