Progettazione di un lettore di libri online

1

Voglio progettare un sistema di lettura di libri online come esercizio di programmazione. Ho annotato i seguenti requisiti:

  • Ricerca di un libro per titolo.
  • Aggiungi ai preferiti un libro.
  • Contrassegna un libro come preferito.
  • Dai il voto.
  • Gestisci utenti.

I vincoli sono che solo un utente può leggere un determinato libro alla volta.

Seguo Pulisci architettura . Che sostiene che:

  • Rinvia i dettagli di implementazione come DB e i meccanismi di consegna.
  • Inizia con il caso d'uso che guida Interact / Service Objects .
  • Nella progettazione dei casi d'uso troverai diverse Entità .
  • Non passare oggetti tra i confini.

So che la domanda sembra troppo ampia, ma per prima cosa volevo un contesto corretto, procederò dal primo passo. Vorrei sapere per prima cosa quale caso d'uso? Secondo, dovrei formulare tutti gli oggetti di servizio e poi passare a Entità ?

    
posta vivek 16.10.2015 - 08:46
fonte

2 risposte

2

Impara a modellare un semplice problema in un modello di dominio problematico e poi in codice.

I tuoi primi quattro requisiti riguardano tutti i libri. Il tuo finale "Gestisci utenti" è vago, quindi per ora lo lascio.

Come rappresenti un libro? Supponendo che ogni libro sia unico, lo modellerai con DUE oggetti. Uno è un libro particolare (Libro) e l'altro l'insieme di tutti i libri (Libreria). La biblioteca ha una lista di libri. Il libro appartiene alla Biblioteca.

Preferito, Segnalibro e Vota diventano metodi sul Libro. Dopotutto dovresti conoscere la regola: - "Un'azione su un oggetto del mondo reale, diventa un metodo dell'oggetto nel codice orientato agli oggetti".

La ricerca diventa un metodo sull'oggetto Libreria. Aggiungi la possibilità di aggiungere, modificare ed eliminare i libri anche nell'oggetto Libreria.

Crea un oggetto che può persistere (e cercare ecc.) nella tua libreria su un file, un DB o un codice morse. Crea oggetti che rappresentano l'interazione umana, come una finestra ecc. Che chiama metodi sul tuo dominio.

Ora hai un sistema funzionante. Per ora, dimentica Oggetti Pulizia / Servizio / Interattori / Entità / Limiti / SomeOtherSilverBullet. Sono tutti spazzatura nel modo in cui produci una soluzione semplice al tuo problema.

    
risposta data 12.04.2016 - 08:50
fonte
-1

Sì, inizia dalla ricerca del caso d'uso, quindi dovresti trovare tutte le entità con la loro relazione e quindi iniziare a creare un'applicazione.

La limitazione può essere applicata da un valore di colonna singola 1 o zero, aperto o chiuso rispettivamente nella tabella dei database dei libri rispetto a ciascun libro

    
risposta data 16.10.2015 - 08:59
fonte