Tôi có khá nhiều mã Java mà tôi đang làm việc để được sử dụng lại. Vấn đề là có nhiều phần cụ thể của dự án nên cuối cùng có mức độ khớp nối cao hơn giữa dự án ứng dụng và dự án cơ sở mã.
So sánh với các tình huống sau đây khi chúng ta sử dụng một lớp thực hiện việc sử dụng các phương thức trừu tượng để lấy các tài nguyên ra khỏi lớp con và một trong đó chúng ta chỉ cần khai báo các biến thể hiện.
Các phương pháp trừu tượng:
public abstract class SuperBaseClass {
public abstract int getNumberOne();
public abstract String getStringOne();
public abstract String getStringTwo();
public printStuff() {
Log.i("IntAndTwoStrings", String.format("%i %s and %s",
getNumberOne(), getStringOne(), getStringTwo()));
}
}
public class ReusedAppClass extends SuperBaseClass {
public int getNumberOne() {
return 1;
}
public String getStringOne() {
return "String1";
}
public String getStringTwo() {
return "String2";
}
public ReusedAppClass() {
printStuff();
}
}
Biến thể hiện:
public class SuperBaseClass {
protected int numberOne;
protected String stringOne;
protected String stringTwo;
public printStuff() {
//Possibly throw RuntimeExceptions if the app didnt set these
Log.i("IntAndTwoStrings", String.format("%i %s and %s",
numberOne, stringOne, stringTwo));
}
}
public class ReusedAppClass extends SuperBaseClass {
public ReusedAppClass() {
numberOne = 1;
stringOne = "String1";
stringTwo = "String2";
printStuff();
}
}
Có một sự đánh đổi? Là tình huống phương thức trừu tượng quá mức cần thiết, hay đây là những gì các lớp trừu tượng được tạo ra cho?