私はPOSシステムの販売データからレポートを作成したいと思います。クラスがあまりにも似ている場合
だから、私はList <Ticket>
Ticket
クラスがレジでの登録を表していReportGenerator
を持っています。これは、販売なしで金銭を預け入れる金銭の登録(例えば、銀行への預金)のためにSalesTicket
(DirectSalesTicket
、InvoiceSalesTicket
、...)またはCashRegisterMovementTicket
とすることができます。
InvoiceSalesTicket
は、にはないinvoiceNumber
を持っています。だから私は2つの異なるクラスを持つことで大丈夫です。私は2クラス(CashInRegisterMovementTicket
とCashOutRegisterMovementTicket
)CashRegisterMovementTicket
から固有のものを作ることができCashRegisterMovementTicket
については
(Ticket
である)レジスタから取り出したレジやお金に追加されたお金を表します。 これは3つのクラスを作成しますが、実際には内部的には違いはありません。
キャッシュレジスタから取り出されたお金を使ってレポートを生成する場合は、List <Ticket>
とし、CashOutRegisterMovementTicket
タイプのもののみを使用してください。
もう一つの例:
SalesTicket
は、いくつかのレポートは商品券 を持ってSalesTicket
に基づいていますList <SalesLine>
ているので、私はSalesLine
から両方の固有NormalSalesLine
とGiftCertificateSalesLine
、持っているが、内部的には同じです。
私は時々非常に似ているクラスがたくさんあるみたいです。 私は何が欠けていますか?
クラス間でテストを複製する場合、クラスの動作が非常に似ていることがわかります。 – byxor