È buona pratica di programmazione avere una classe con diversi file .h?

3

Suppongo che la classe abbia diverse interfacce. Alcuni mostra ad una classe, alcuni mostra ad altre classi.

C'è qualche buona ragione per questo?

Una cosa che posso pensare è con uno .h per classe, l'interfaccia sarebbe pubblica o privata.

Che ne pensi se voglio che qualche interfaccia sia disponibile per la classe di alcuni amici e che alcune interfacce siano veramente pubbliche?

Esempio:

@interface listNewController:BadgerStandardViewViewController <UITableViewDelegate,UITableViewDataSource,UITextFieldDelegate,NSFetchedResultsControllerDelegate,UIScrollViewDelegate,UIGestureRecognizerDelegate> {
}

@property (nonatomic) IBOutlet NSFetchedResultsController *FetchController;
@property (nonatomic) IBOutlet UITextField *searchBar1;
@property (nonatomic) IBOutlet UITableView *tableViewA;
+ (listNewController *) singleton; //For Easier Access
-(void)collapseAll;
-(void)TitleViewClicked:(TitleView *) theTitleView;
-(NSUInteger) countOfEachSection:(NSInteger)section;
@end

Molte di queste proprietà e funzioni pubbliche vengono chiamate solo da una sola classe. Mi chiedo perché ho bisogno di renderli disponibili per molte classi.

È in Objective-c, tra l'altro

Che cosa intendi? L'interfaccia è l'interfaccia. In C ++ puoi dichiarare alcune classi come "amici". In Objective-c non puoi pensare. Fondamentalmente voglio emularlo. I miei amici possono accedere ad alcuni membri che non sono disponibili anche pubblicamente,

    
posta user4951 03.06.2012 - 05:58
fonte

2 risposte

5

Direi di no. È un segno che la tua classe è troppo complessa, o sta cercando di fare troppo. Potrebbe essere che tu voglia dividerlo in più classi o che tu voglia rivedere completamente le tue astrazioni.

Un modo sarebbe trasformare ogni "interfaccia" in una classe a sé stante, usando la classe principale. Potresti esportare le "classi di interfaccia", ma mantenere la classe principale più nascosta. Non sono sicuro se ti comprerebbe qualcosa, comunque.

    
risposta data 03.06.2012 - 22:58
fonte
1

Normalmente vuoi un file .h per classe. Ciò aiuta a incapsulare tutte le informazioni correlate per una classe in un unico posto. Personalmente non mi sono mai imbattuto in più file .h per una singola classe, anche se spesso mi sono imbattuto in più classi in un singolo file .h.

In fin dei conti si tratta di decidere se altri dovranno lavorare con il tuo codice. Se è così, ti consiglio di stare con un singolo file .h per classe. Se nessun altro vedrà mai il tuo codice, allora farà ciò che ha senso per te. Tieni presente che le cattive abitudini possono essere difficili da rompere.

    
risposta data 03.06.2012 - 07:07
fonte

Leggi altre domande sui tag