Refactoring for better encapsulation
Another core tenet of object-oriented programming is encapsulation. With encapsulation, you assert control of the data in your classes and ensure others work with data in ways that make sense both immediately and as the code grows over time.
The following refactorings deal with the various pieces of data composing classes along with the data passed along to methods as parameters.
Encapsulating fields
The simplest encapsulation refactoring allows you to wrap all uses of a field into a property.
In the following code example, the PassengerFlightInfo
class has a _passengers
field storing the count of passengers on the flight, and this field is used throughout the class when referring to the passenger count:
public class PassengerFlightInfo : FlightInfoBase { private int _passengers; public void Load(int passengers) => _passengers = passengers; public void Unload() => ...