Aiuto di progettazione necessario

-3

Ho un modello di chiamata Drug

class Drug{

String drugId;
String name;
String strength;
}

questa interfaccia prende un drugId e restituisce il Modello di Droga

interface IProcessor{
getDrug(String drugId)
}

// flusso facile

class ProcessorA extends IProcessor{
protected Drug getDrug(String drugId){
  //get Drug from source A
  return Drug
}
}

// Dalla sorgente B, otterrò campi aggiuntivi. Non sono sicuro di come posso aggiungere i nuovi campi al modello della droga

class ProcessorB extends IProcessor{
protected Drug getDrug(String drugId){
//get Drug from source B
// Add few more fields specific to B 
  return Drug
}
}

1) Estendi il modello Drug (classe DrugB estende Drug) per ProcessorB e aggiungi i nuovi campi. In questo caso, potrei finire per digitare il DrugB. Va bene?

2) Aggiungi i campi comuni alla classe di farmaci e usalo. Questo va bene, ma il numero di campi per ciascun tipo di processore potrebbe aumentare.

C'è qualche schema a cui dovrei pensare. Si prega di consulenza.

    
posta Prabhu shanmughapriyan 29.03.2017 - 13:27
fonte

1 risposta

0

Se ho capito bene, stai provando ad aggiungere i campi all'oggetto Modello di droga in modo da escludere logicamente la sottoclasse. Se si desidera assegnare una struttura ai valori restituiti da un processore quindi è possibile creare una nuova struttura DrugB e DrugC e rendere queste strutture come parte dell'oggetto Drug originale. Questo tipo di segregazione farà sì che ProcessorA restituisca un tipo di oggetto DrugA e ProcessorB a ... e così via e così via. Quindi la classe della droga avrà DrugB e DrugC come oggetti al suo interno. Questo è un modo per guardarlo.

    
risposta data 31.03.2017 - 11:14
fonte