Come organizzare le classi che dovrebbero riflettere diverse versioni dello standard?

0

Ho degli standard che cambiano nel tempo. Diciamo che ho std_v1, std_v2 e std_v3. Questi standard hanno molte parti comuni con alcune piccole differenze, possibili aggiunte e cancellazioni. Oltre a questi standard, ho diverse implementazioni concrete, che hanno un piccolo numero di modifiche.

Al momento la mia gerarchia di classi assomiglia a:

                base
          /       |      \
      std_v1   std_v2   std_v3
    /        \
 concrete1   concrete2  ...

Dove la classe base raccoglie la somiglianza tra std_v1, std_v2, std_v3.

Ho alcuni problemi con tale implementazione. Per il nuovo standard, ho bisogno di modificare la classe base e talvolta le classi standard precedenti per riflettere un codice simile. C'è del codice in una classe base che viene usata solo da uno standard. Le classi concrete sembrano più delle configurazioni che sovrascrivono i metodi pubblici, come:

public get_some_data():
    return "concrete_data1"

C'è un modo migliore per migliorare l'architettura? Ho pensato alla composizione ma non riesco a capire come adattarla.

    
posta Viacheslav Kondratiuk 05.04.2018 - 22:31
fonte

0 risposte

Leggi altre domande sui tag