Tôi có một loạt các hệ thống, hãy gọi cho chúng A, B, C, D, E, F, G, H, I, J
.Giao diện, Tóm tắt hoặc chỉ các phương pháp ảo?
Tất cả đều có các phương thức và thuộc tính tương tự. Một số chứa cùng một phương pháp và thuộc tính giống nhau, một số có thể thay đổi đôi chút và một số có thể thay đổi rất nhiều. Ngay bây giờ, tôi có rất nhiều mã trùng lặp cho mỗi hệ thống. Ví dụ, tôi có một phương pháp gọi là GetPropertyInformation()
được định nghĩa cho mỗi hệ thống. Tôi cố gắng để tìm ra những phương pháp sẽ là phương pháp tốt nhất để giảm mã trùng lặp hoặc có lẽ một trong những phương thức dưới đây không phải là cách để đi:
Interface
public Interface ISystem
{
public void GetPropertyInformation();
//Other methods to implement
}
public class A : ISystem
{
public void GetPropertyInformation()
{
//Code here
}
}
Tóm tắt
public abstract class System
{
public virtual void GetPropertyInformation()
{
//Standard Code here
}
}
public class B : System
{
public override void GetPropertyInformation()
{
//B specific code here
}
}
Phương pháp ảo trong lớp Super Base
public class System
{
public virtual void GetPropertyInformation()
{
//System Code
}
}
public class C : System
{
public override void GetPropertyInformation()
{
//C Code
}
}
Một câu hỏi, mặc dù nó có thể là ngu ngốc, giả sử tôi đã đi theo phương pháp trừu tượng và tôi muốn ghi đè lên GetPropertyInformation
, nhưng tôi cần phải chuyển cho nó một tham số bổ sung, điều này có thể hay tôi sẽ phải tạo một phương thức khác trong lớp trừu tượng? Ví dụ: GetPropertyInformation(x)
Tôi có cảm giác về các lớp trừu tượng và siêu cơ bản giống nhau. Các hệ thống A, B, C có khớp nối mạnh. Có một tiêu chuẩn công nghiệp, nhưng nó không phải được theo sau, vì vậy mỗi người có thể áp dụng tiêu chuẩn hoặc thay đổi tiêu chuẩn cho phù hợp của họ. Trong sự vội vàng, tôi chọn System :) – Xaisoft
Điểm tốt bằng cách này. – Xaisoft