Handling complexity trade-offs during method design
When designing your library, you have a choice of how many methods you should have in your library. You also have a choice of how many classes should make up your library, which you learned about in the The single-responsibility principle section in Chapter 2, Designing Useful Custom Classes. To implement the exact same features, you can often implement them using fewer, more complex, and more flexible methods, or more methods that are less complex and less flexible.
As an example, let's say you are designing a data access library, and one of your requirements is that you need to return the following types of data, assuming that N
and O
are integers, and criteria
will be provided as a block that returns true
or false
when passed the record:
- The first record
- The first
N
records, as an array - The first record matching given
criteria
- The first
N
records matching givencriteria
, as an array - The record at...