Domande con tag 'liskov-substitution'

6
risposte

Liskov Principio di sostituzione - condizioni di rafforzamento

Sono un po 'confuso riguardo a cosa significhi veramente. Nelle domande correlate ( È una violazione di il Principio di sostituzione di Liskov? ), è stato detto che l'esempio viola chiaramente LSP. Ma mi chiedo, se non ci fosse una nuova ecce...
posta 18.01.2018 - 10:38
1
risposta

Può essere corretto derivare da un tipo di libreria standard violando anche il principio di Liskov?

Vorrei definire un puntatore condiviso il cui operator== confronta il puntato con valori al posto dei puntatori, qualcosa del genere: template <typename T> struct deref_shared_ptr: std::shared_ptr<T> { bool operator==(cons...
posta 29.07.2016 - 09:51
2
risposte

È bello avere un'interfaccia in abbondanza di metodi che appartengono a concetti diversi, solo per preservare il Principio di Liskov?

Attualmente sto studiando un corso basato su Software Design e ho avuto una discussione in classe con il mio professore e alcuni compagni di classe su un problema rappresentato dal seguente scenario: Scenario Imagine we have a graphic...
posta 24.05.2013 - 00:31
4
risposte

Si sta verificando un errore in circostanze specifiche sottoclasse imprevedibili una violazione di LSP?

Diciamo che volevo creare un Java List<String> (vedi specifica ) implementazione che utilizza un sottosistema complesso, ad esempio un database o un file system, per il proprio archivio in modo che funzioni come una raccolta permanen...
posta 10.11.2013 - 16:59
2
risposte

Principio di sostituzione di Liskov: Se il sottotipo ha implementato qualche comportamento extra, che non è presente nel tipo, allora questa violazione di LSP?

Nella mia ricerca di scrivere meglio, codice più pulito, sto imparando i principi SOLID. In questo, LSP si sta rivelando poco difficile da comprendere correttamente. Il mio dubbio è se avessi alcuni metodi extra nel mio sottotipo, S, che non...
posta 03.05.2018 - 10:17
6
risposte

Questo codice risolve l'esempio di principio di sostituzione di Liskov quadrato / rettangolo?

Volevo solo verificare di aver compreso correttamente l'LSP e di poterlo risolvere. Sto prendendo il classico problema rettangolo / quadrato e tentando una soluzione: class Rectangle{ public $width; public $height; function setW...
posta 25.11.2015 - 14:10
7
risposte

Il chiamare un metodo protetto virtuale da una classe base viola l'LSP?

Diciamo che abbiamo questa classe base: class MyBase { public string Name { get; set; } public string GetDescription() { var descriptionList = new List<string>() { this.Name }; descriptionList.AddRange(this.E...
posta 17.11.2011 - 13:44
5
risposte

Liskov, rettangoli, quadrati e oggetti null

Continuo a pensare di avere la mia testa avvolta nel Principio di sostituzione di Liskov, e poi mi rendo conto di non farlo. Qui è dove ho raccolto StackExchange: La sottoclasse di Square da Rectangle viola LSP perché se cambi la larghezza d...
posta 12.09.2017 - 19:54
3
risposte

Questa implementazione di Decorator viola il Principio di sostituzione di Liskov?

Considerare la seguente implementazione del modello di progettazione Decorator: WordBank memorizza le stringhe e le restituisce al client tramite il metodo getWords() . La classe decoratore, WordSorter , è una sottoclasse di...
posta 23.05.2014 - 23:19
1
risposta

Conversione di interfacce in sottotipi. È questo cattivo SE?

In azienda per cui lavoro, continuo a vedere le interfacce di IManager convertite nei loro veri tipi e un sacco di "instanceof / TypeOf" se i controlli delle istruzioni. Ad esempio: Gestore IManager // passato al metodo come parametro if...
posta 13.02.2018 - 11:34