Giao diện dòng lệnh và viết lại class Identity sử dụng attribute

- Giao diện dòng lệnh được phân thành các trang, là các class inherit từ ChoiceScreen. Trong constructor của các class này sẽ sử dụng method AddChoice(String key, String description, Action callableMethod) để thêm tùy chọn trên giao diện. Sau đó gọi method Start để khởi động trang, Stop để trở về trang trước, Quit để thoát. Có thể thêm các hàm hook trước khi hiển thị menu hoặc trước và sau khi chạy action.
- Các class identity như Student bh chỉ cần inherit từ Identity và dùng attribute [Identity.ID] để đánh dấu property nào dùng để so sánh ngang bằng (Equals). Sau đó có thể cho vào HashSet thoải mái.