In the object-oriented programming community, there is a very common design pattern known as Model-View-Controller. The Model-View-Controller design pattern says that each class you write should fall into exactly one of the following groups:
Model: Model classes describe your data. For example, if you write banking systems, you would probably create a model class called
SavingsAccount that would have a list of transactions and a current balance. The best model classes include nothing about the user interface and can be used in several applications.
View: A view class is part of the GUI. For example,
NSSlider is a view class. The best views are general-purpose classes and can be used in several applications.