Progettazione OO di applicazioni pubblicitarie [chiusa]

3

Sto creando un design OO per un'app. Finora sono arrivato con questo, sembra che possa funzionare, ma non sono sicuro della correttezza del suo design.

Vecchio design

Modifica

Okay,housatounmodellodifabbrica,emisembrabuono.Questoèunbuondesign?

You are building application that will load data from several different advertising systems and then store the data into database, so it will be possible to analyze them.

You need to take in mind that every advertising system has different structure of report: Different named columns, different order of columns, different date formats. Also data from ad systems are in different data formats(JSON,CSV,XML),

Reports from each system contains different amount of columns, our application is interested only in some of them: date, ad_campaing, ad_group, keyword, impressions, price (in every system they have different name)

    
posta rtom 01.12.2016 - 11:39
fonte

3 risposte

1

Il livello dati del report non è Open-Closed ( link ), conosce tutti i formati e deve essere modificato per essere esteso con nuovi formati.

Il design non ha spiegato come sono costruiti i report, che è il cuore di questo sistema. Questo è qualcosa che potresti voler affrontare in questa fase.

    
risposta data 10.04.2017 - 12:29
fonte
0

Vorrei andare con

Advert
{
    string id;
    var ad_group;
    var keyword;
    var impressions;
    var price ;
}

AdRepository_MyDatabase
{
    InsertAdvert(Advert advert);
    GetAdverts();
}

//this class is the only thing that knows about the bing format and how to
//get the bing adverts and convert them to our adverts
AdRepository_Bing
{
    List<Advert> GetAdverts();
}

AdRepository_Google
{
    List<Advert> GetAdverts();
}

etc

WorkerService
{
    DownloadAdverts()
    {
         foreach(repo in RepositoryCollection)
         {
              var ads = repo.GetAdverts();
              foreach(ad in ads)
              {
                     mydatabaseRepo.InsertAdvert(ad);
              }
         }
    }
}
    
risposta data 02.12.2016 - 12:39
fonte
0

Credo che sia una buona architettura, ma sono giunto con una domanda, come diresti al AdvertisingFactory come convertire la stringa in un rapporto, spero di aver capito bene la domanda. Quindi mi è venuta l'implementazione di un modello di strategia:

Quella che fa la tua conversione è ReportMapper , perché non ho trovato un altro nome, e la fabbrica completa tutto.

    
risposta data 10.12.2016 - 10:13
fonte

Leggi altre domande sui tag