Xin chào các bạn, tôi có một chút vấn đề về thiết kế. Tôi tạo ra một máy tính tỷ lệ như sau:Sử dụng các lớp chung trừu tượng trong mẫu thiết kế phần mềm nhà máy
Public Interface ICalculator
Property PaymentTerm As Double
Function Calculate() As CommissionValues
ReadOnly Property CalculationRule As CalculationRuleEnum
End Interface
Public Interface IFlexibleRateCalculator
Inherits ICalculator
Property TransferRate As Decimal
End Interface
Public Interface IFixedRateCalculator
Inherits ICalculator
Property ContractRate As Decimal
End Interface
Public Interface IRateSettingBase
Property RateType As RateTypeEnum
ReadOnly Property Calculator As ICalculator
End Interface
Public MustInherit Class RateSetting
Implements IRateSettingBase
Public MustOverride ReadOnly Property Calculator() As ICalculator Implements IRateSettingBase.Calculator
tôi có thể làm một cái gì đó như thế này:
dim ratevalues as RateValues = RateSetting().Calculator.Calculate()
Khá đơn giản. Vấn đề là mỗi loại máy tính có bộ thuộc tính riêng của chúng cần được thiết lập để các phương thức Calculate() của chúng hoạt động đúng. Vì vậy, tôi sẽ chỉ phải thực hiện như sau
FlexibleRateCalculator
Implements IFlexibleRateCalculator
Private mRequestedRate As Decimal
Public Function Calculate() As RateValues Implements ICalculator.Calculate
FixedRateCalculator
Implements IFixedRateCalculator
Private mTransferRate As Decimal
Public Function Calculate() As RateValues Implements ICalculator.Calculate
cách tốt nhất sử dụng Generics và lớp trừu tượng để tạo ra một mô hình nhà máy mà sẽ tạo ra một máy tính của một loại hình cụ tự động là gì ??
Tôi cần một giải pháp rất chung chung vì nhiều tỷ lệ tính toán sẽ được thêm và sửa đổi tất cả với thông số riêng của chúng cần thiết cho logic tính toán. Tôi muốn có thể thực hiện điều này một cách nhanh chóng và có thể kiểm soát việc tính toán tỷ lệ này thông qua db. Câu trả lời FYI trong C# hoặc VB.Net được chào đón :) Cảm ơn bạn trước!
Đây có phải là vb.net không? Vui lòng thêm thẻ ngôn ngữ để thu hút thêm sự chú ý. –
Cảm ơn. Và có của nó trong VB.Net ngay bây giờ nhưng tôi có thể được chuyển đổi sang C# do đó, hoặc cú pháp sẽ giúp đỡ. Tôi quan tâm nhiều hơn đến thiết kế. Cảm ơn một lần nữa. – user1794228