Sottoclassi per evitare la lunghezza della linea

0

La lunghezza standard del codice è di 80 caratteri per riga. Questo è accettato e seguito dalla maggior parte dei programmatori.

Sto lavorando su una macchina a stati di un personaggio ed è necessario che io segua anche questo.

Ho quattro classi che superano questo limite.

Posso creare sottoclasse ogni classe in altre due e quindi evitare il limite della lunghezza della linea.

class Stand

class Walk

class Punch

class Crouch

Le nuove classi sarebbero StandLeft , StandRight e così via. Stand , Walk , Punch e Crouch sarebbero quindi classi astratte.

La domanda se c'è un limite per la lunghezza dell'albero gerarchico o questo dipende dal caso.

    
posta Super User 22.10.2013 - 22:54
fonte

2 risposte

4

Sottoclassi e sottotipi portano con sé un sacco di bagagli sotto forma di ereditarietà e la desirabality di supportare Principio di sostituzione di Liskov . Sarebbe piuttosto sciocco iniziare a creare sottoclassi semplicemente per supportare una convenzione di denominazione arbitraria.

Non è chiaro il motivo per cui occorrerebbe classi separate per ciò che stai descrivendo. In che modo StandLeft è significativamente diverso da StandRight? puoi separarli e usare invece la composizione? Cioè, la classe Stand ha un attributo chiamato direction , che a sua volta è un'implementazione Left o Right dell'interfaccia IDirection :

class Stand {
    private IDirection direction;
    ...
}

L'oggetto IDirection potrebbe definire informazioni utili sullo stato o una strategia diversa per come dovrebbe comportarsi l'oggetto Stand.

    
risposta data 22.10.2013 - 23:12
fonte
1

Per quanto ne so, non ci sono limiti rigidi in termini di gerarchia di classi per quanto riguarda le convenzioni di codifica o qualcosa del genere, ma è necessario assicurarsi di creare più sottoclassi e tale è davvero la risposta.

Non consiglierei di creare più sottoclassi per limitare il numero di caratteri per riga. Solitamente risolvi un problema del genere semplicemente concatenando stringhe, usando più variabili, ecc.

    
risposta data 22.10.2013 - 23:20
fonte