Let's make a small application related to the academic world. We will make two façades—one façade to manage the financial part of the application, and one to manage the academic part of the application. We will also construct some other classes, such as DAO classes and classes of the domain model. There is no database; all the data is kept in memory through the DAO classes. Consequently, the methods designed for finding information are built into the DAO classes. Let's create the following domain model classes: Discipline, Course, Member (Member is an abstract class that represents a member of a college), Professor, and Student:
import java.io.Serializable;
public class Discipline implements Serializable{
private String name;
private String code;
@Override
public int hashCode() {
final int prime...