Какой шаблон проектирования следует использовать, если для каждого поля объекта существует несколько трансформаторов (одинаковых или разных трансформаторов для клиента)? - PullRequest
0 голосов
/ 05 марта 2020

С учетом входного объекта компании. В зависимости от источника объекта клиент выбирается. Предположим, у меня есть 2 клиента. Различные поля входного объекта необходимо преобразовать. Каждый клиент может иметь отдельные трансформаторы для разных преобразований поля.

class Company {
    String a;
    String b;
}

abstract class AbstractTransformer {
   private StringaTransformer aTransformer;
   private StringbTransformer bTransformer;

   public Object transform(Company c) {
       String x = aTransformer.transform(c);
       String y = bTransformer.transform(c);
       return some object of x and y
   }
}

class Client1Transformer extends AbstractTransformer{
   Client1Transformer()
   public Object transform(Company c) {
      return super.transform(c);
   }
} 

class Client2Transformer extends AbstractTransformer{
   Client2Transformer()
   public Object transform(Company c) {
      return super.transform(c);
   }
}

В настоящее время оба клиента имеют одинаковые преобразования. В будущем client1 может иметь отдельный преобразователь для преобразования поля a. Является ли указанный выше код корректным и нуждается в некоторых предложениях по включению этого изменения, когда client1 будет иметь отдельный преобразователь для поля a. Аналогичным образом в объекте Company может быть несколько полей. Является ли определение трансформаторов таким образом, кажется правильным, если нет, предложите несколько подходящих подходов.

...