Я пытаюсь усвоить принципы SOLID Роберта С. Мартина. В настоящее время я изучаю низкую связанность и высокую сплоченность. Я создал некоторый код, который представляет мое текущее понимание этого предмета. Не могли бы вы, ребята, сказать мне, если на правильном пути? Есть ли шанс улучшить текущий дизайн?
Основное приложение, которое создает два адреса и присваивает их сотруднику:
public class App {
public static void main(String[] args) {
Address homeAddress = new HomeAddress("This is my Home Address");
Address workAddress = new WorkAddress("This is my Work Address");
Employee employee = new Employee(homeAddress, workAddress);
employee.getAddresses();
}
}
Класс сотрудника:
public class Employee {
private Address homeAddress;
private Address workAddress;
Employee(Address homeAddress, Address workAddress) {
this.homeAddress = homeAddress;
this.workAddress = workAddress;
}
public void getAddresses() {
System.out.println("homeAddress: " + homeAddress.getAddress());
System.out.println("workAddress: " + workAddress.getAddress());
}
}
Адресный интерфейс:
public interface Address {
String getAddress();
}
Конкретная реализация адреса 1 (HomeAddress):
public class HomeAddress implements Address {
String specificAddress;
public HomeAddress(String specificAddress) {
this.specificAddress = specificAddress;
System.out.println("In HomeAddress Constructor");
}
public String getAddress() {
return specificAddress;
}
}
Конкретная реализация адреса 2 (WorkAddress):
public class WorkAddress implements Address {
String specificAddress;
public WorkAddress(String specificAddress) {
this.specificAddress = specificAddress;
System.out.println("In WorkAddress Constructor");
}
public String getAddress() {
return this.specificAddress;
}
}
Любая помощь/отзыв будет принята с благодарностью! Заранее спасибо.
Марк.