FROM : Seth Willits
DATE : Tue Nov 06 02:37:12 2007
On Nov 4, 2007, at 12:04 PM, Bill Bumgarner wrote:
>> I have a controller class which has become quite large. It has many
>> instance variables which are all related to the view it connects
>> to, and which are manipulated inside the class. Is there a clear
>> way to split such a file into two (or more) components? I
>> considered making a category, but that's not quite good because it
>> cannot have (new) instance variables in it. Moreover, I cannot have
>> the instance var declarations in the original file and the code in
>> the category; that will generate many warnings. Any suggestions?
>> Thanks in advance, Arthur C.
>
> You can certainly have the iVar declarations in the main @interface
> declaration and references to the ivars in categories without
> warnings. Works fine. If you are seeing warnings, then something
> else is hosed.
>
> I'd suggest having a close look at your controller to see if it
> can't be broken up into multiple classes. Huge source files are
> usually an indication that something needs to be refactored.
> Usually. Controller classes are the one class that can sometimes
> grow quite large.
I've wondered at what point does it cross the line from being just
"big" to "dude… refactor your code" big.
The largest controller I have in any project is about 5,000 lines
including comments and empty lines etc. Feels too big to me, but
breaking it up into multiple classes just lead to having too many
interdependent classes, so I just busted it up into separate files and
categories to group things logically for my own benefit. Doesn't
change the code usage at all. It's a happy medium for now.
--
Seth Willits
DATE : Tue Nov 06 02:37:12 2007
On Nov 4, 2007, at 12:04 PM, Bill Bumgarner wrote:
>> I have a controller class which has become quite large. It has many
>> instance variables which are all related to the view it connects
>> to, and which are manipulated inside the class. Is there a clear
>> way to split such a file into two (or more) components? I
>> considered making a category, but that's not quite good because it
>> cannot have (new) instance variables in it. Moreover, I cannot have
>> the instance var declarations in the original file and the code in
>> the category; that will generate many warnings. Any suggestions?
>> Thanks in advance, Arthur C.
>
> You can certainly have the iVar declarations in the main @interface
> declaration and references to the ivars in categories without
> warnings. Works fine. If you are seeing warnings, then something
> else is hosed.
>
> I'd suggest having a close look at your controller to see if it
> can't be broken up into multiple classes. Huge source files are
> usually an indication that something needs to be refactored.
> Usually. Controller classes are the one class that can sometimes
> grow quite large.
I've wondered at what point does it cross the line from being just
"big" to "dude… refactor your code" big.
The largest controller I have in any project is about 5,000 lines
including comments and empty lines etc. Feels too big to me, but
breaking it up into multiple classes just lead to having too many
interdependent classes, so I just busted it up into separate files and
categories to group things logically for my own benefit. Doesn't
change the code usage at all. It's a happy medium for now.
--
Seth Willits
| Related mails | Author | Date |
|---|---|---|
| Arthur C. | Nov 4, 20:37 | |
| Bill Bumgarner | Nov 4, 21:04 | |
| Seth Willits | Nov 6, 02:37 | |
| Andy Lee | Nov 6, 04:36 |






Cocoa mail archive

