30/09/2018, 20:45
Thao tác giữa các lớp trong OOP
Mình có 1 class danh_sách_khoa gồm tập hợp các khoa . Trong đó 1 phần tử khoa bao gồm : mã khoa và tên khoa .
Sau đó mình có một danh sách sinh viên có thông tin là mã khoa. Minh có method xuat() . lấy thông tin mã khoa của sinh viên tìm kiếm qua bên class danh_sach_khoa để xuất ra tên khoa.
Mình không biết có cách nào hay hơn là truyền đối số danh sách vào hay không ?
Bài liên quan
ko rõ lắm câu hỏi, nhưng để tìm ra tên khoa thì trong class danhsachkhoa chỉ cần 1 hàm, getTenKhoa( int maKhoa) , tham số là maKhoa, có được khi lấy từ sinhvien.
ý mình hỏi là ngoài cách phương thức xuất trong lớp sinh viên truyền tham số là danh sách khoa để xuất ra thông tin tên Khoa thì còn cách nào khác không ?
vì dụ như thế này
public void xuat(ds_khoa dskhoa){
System.out.println("MSSV: " + mssv);
System.out.println("Ho ten : " + hoten);
System.out.println("Gioi tinh : " + gioitinh);
System.out.println("Sdt : " + sdt);
System.out.println("Diem TB : " + diemtb);
String s= dskhoa.getTenkhoa(makhoa)
System.out.println("Khoa " + s);
}
Ý mình hỏi là ngoài cách này… còn cách nào có thể truy xuất qua bên danh sách khoa để dò tìm nữa mà k cần phải truyền tham số không
không cần truyền tham số
en.wikipedia.org
tham khảo Singleton pattern :
http://www.tutorialspoint.com/design_pattern/singleton_pattern.htm
Singleton pattern
In software engineering, the singleton pattern is a software design pattern that restricts the instantiation of a class to one object. This is useful when exactly one object is needed to coordinate actions across the system. The concept is sometimes generalized to systems that operate more efficiently when only one object exists, or that restrict the instantiation to a certain number of objects. The term comes from the mathematical concept of a singleton. There are some who are critical of the s...
khi sử dụng chỉ cần gọi tênClass.getInstance().tenPhuongthuc là ok
Mình có các class như sau
public class Khoa(){
private String makhoa;
private String tenkhoa;
}
public class Danh_sach_khoa(){
private LinkedList danhsach=new LinkedList<>();
public String timkhoa(String s){
for(Khoa temp : danhsach){
if(s.equals(temp.getMakhoa())== true){
return temp.getTenkhoa();
}
}
return “Khong co trong danh sach”;
}
}
Nếu mà chỗ này mình khai báo kiểu static biến danh sách thì danh_sach_khoa sẽ không thể tạo ra các đối tượng khác .
Còn nếu mà khai báo private static Danh_sach_khoa instance = new Danh_sach_khoa() thì trong biến danh sách lại không có các thông tin nhập vào để duyệt tìm.
Cách này mình nghĩ không đc… Bạn còn hướng dẫn nào khác không…
Nếu trong classSinhVien bạn còn dùng đến dsKhoa thì bạn có thể khai báo ds_Khoa như 1 biến của class SinhVien. Vậy thì khi xuất không cần truyền biến vào nữa.
Đây không hẳn là một cách tối ưu nhưng nó là 1 cách khác cho bạn tham khảo.
Tại sao Singleton lại có ý nghĩa ở đây?