Visualizzazione dei risultati da 1 a 10 su 13

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Quote Originariamente inviata da shodan Visualizza il messaggio
    D'accordo, ma la geometria è stata inventata e sviluppata dall'uomo. E se all'uomo fa comodo pensare un quadrato come a un caso speciale di rettangolo o rombo non è che la natura pensi allo stesso modo.
    "In natura non esistono linee dritte" disse Gaudì a proposito delle sue costruzioni strane.
    qui cadi in contradizione: dato che la natura non ha forme rigide la natura non può pensare niente del quadrato perché non esiste.
    Nella OOP pensare un quadrato come un rettangolo e/o rombo particolare (geometricamente parlando) porta a creare interfacce sconnesse e piene di errori (e non lo dico io, ma l'articolo).
    questo è un problema dell'OOP e non della geometria.
    La soluzione la suggerisci tu quando dici:

    ergo "un quadrato è un caso speciale di parallelogramma".
    Io parlo di figura geometrica più generale, ma il concetto è quello.
    errato: il parallelogramma è solo un caso speciale di poligono a 4 lati che a sua volta è un caso speciale di poligono che è un caso speciale di poligonale... figura. Inoltre rombo e rettangolo sono un caso speciale di parallelogramma e quadrato un caso speciale di questi ultimi due.
    Edit: ovviamente il quadrato è anche un caso speciale di parallelogramma, ma lo è allo stesso modo in cui è un caso speciale di linea.
    @gaten

    Io farei proprio così per semplicità. Se si trattasse di C++ al massimo farei ereditare Quadrato da Rettangolo in modo protected, ma poi come la mettiamo col Rombo?
    Una soluzione già accennata da MItaly è la ereditarietà multipla.
    Tra l'altro io sarei anche più "talebano": toglierei la possibilità di modificare le dimensioni di una figura i metodi appositi set_qualcosa() e ne permetterei il dimensionamento solo attraverso il costruttore e successivo assegnamento.
    Questa è la soluzione più logica ed è anche il motivo per cui nei linguaggi che adottano principi funzionali non si incorre in questi problemi.
    Ultima modifica di Scara95; 11-12-2013 a 16:36
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.