基于客户档案的网站标签的最佳模式

本文关键字:网站 标签 最佳 模式 档案 于客户 客户 | 更新日期: 2023-09-27 18:06:28

我有一个要求,使我们当前的web应用程序配置基于客户端配置文件。基本上,允许应用程序根据客户来扩展和定制自己。我目前的要求开始将是简单的,这是使web应用程序中的文本可配置。因此,ATM将有2个可能的配置文件,根据您选择的配置文件(通过AppSetting或数据库),所有标签都需要相应地呈现。我能想到很多方法来做这件事。我不想做的一件事是将标签值存储在数据库表中,因为ATM不需要通过接口修改标签,所以我想也许是资源文件?

另外,我的下一个要求将是网站内的所有功能根据个人资料打开/关闭,所以我需要把这一点考虑进去。有时,一个特性将共享90%的逻辑,因此复制到该特性并对该概要文件进行10%的更改,然后将相同的特性复制到两个副本中并将差异最小化,这是不可行的。所以我也在求这个的解。也许是一个涵盖这两种需求的总体设计?

任何建议都将非常感谢。由于

基于客户档案的网站标签的最佳模式

根据我的理解,您需要更新网站中的标签,并根据所选择的配置文件提供一些功能。

因此,我想这样做:

首先实现MVC模式,其中我们的网站将在视图中,模型将是Profile类和控制器将承载所有的业务逻辑。

如果我们不想使用Database,我们可以序列化Profile类的对象并存储(for 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编写了语法