Đối với dự án học kỳ của tôi, nhóm của tôi và tôi phải tạo một tệp .jar (thư viện, không chạy được) có chứa khung phát triển trò chơi và thể hiện các khái niệm về OOP. Nó được cho là một FRAMEWORK và một nhóm khác được cho là sử dụng khuôn khổ của chúng tôi và ngược lại. Vì vậy, tôi muốn biết làm thế nào chúng ta nên bắt đầu. Chúng tôi nghĩ rằng một số phương pháp:
1. Bắt đầu với một lớp đồng bằngLớp hoặc Lớp cơ sở trừu tượng?
public class Enemy {
public Enemy(int x, int y, int health, int attack, ...) {
...
}
...
}
public class UserDefinedClass extends Enemy {
...
}
2. Bắt đầu với một lớp trừu tượng mà kẻ thù người dùng định nghĩa phải kế thừa các thành viên trừu tượng
public abstract class Enemy {
public Enemy(int x, int y, int health, int attack, ...) {
...
}
public abstract void draw();
public abstract void destroy();
...
}
public class UserDefinedClass extends Enemy {
...
public void draw() {
...
}
public void destroy() {
...
}
}
3. Tạo siêu ABC (Lớp cơ sở trừu tượng) mà TẤT CẢ được kế thừa từ
public abstract class VectorEntity {
...
}
public abstract class Enemy extends VectorEntity {
...
}
public class Player extends VectorEntity {
...
}
public class UserDefinedClass extends Enemy {
...
}
Tôi nên sử dụng cái nào? đây có phải là cách tốt hơn không?
Ngoài ra còn có "Java hiệu dụng" được áp dụng nhiều hơn trong trường hợp này. Nó nói một cái gì đó tương tự nhưng với những thứ cụ thể hơn cho Java - giống như cách 'equals()' không hoạt động hoàn toàn đúng khi trộn các kiểu có nguồn gốc và các kiểu cơ sở nếu các lớp cơ sở không phải là tất cả trừu tượng. –