倉庫の在庫という面ではどちらも仕組みは類似しています。入りと出の管理に尽きます。ところが、出し入れの用語が違うので別システムにする事があります。業務担当者と話しするときも用語を使い分けないと話しが通じなかったりします。
生産管理未経験な開発者には受払という言葉が外国語のように聞こえるそうです。逆に生産管理一本の人には入荷出荷が外国語のようです。
うーん。開発者の勉強不足! と一蹴しても改善しません。ということで、用語を反映したシステム設計になったりします。
入荷出荷/受払の用語がプロパティになるようにするために。
'************ 在庫管理 Baseクラス
Public Class 出入
Private _xx品在庫数 As Long
Public ReadOnly Property 在庫量() As Long
Get
Return _xx品在庫数
End Get
End Property
Public WriteOnly Property 入()
Set(ByVal value)
_xx品在庫数 += value
End Set
End Property
Public WriteOnly Property 出()
Set(ByVal value)
_xx品在庫数 -= value
End Set
End Property
End Class
'******* 物販担当者用Alias.Class
Public Class 入出荷 : Inherits 出入
Public WriteOnly Property 入荷()
Set(ByVal value)
MyBase.入 = value
End Set
End Property
Public WriteOnly Property 出荷()
Set(ByVal value)
MyBase.出 = value
End Set
End Property
End Class
'******* 物販担当者用Alias.Class
Public Class 受払 : Inherits 出入
Public WriteOnly Property 受()
Set(ByVal value)
MyBase.入 = value
End Set
End Property
Public WriteOnly Property 払()
Set(ByVal value)
MyBase.出 = value
End Set
End Property
End Class
と実装すれば、基本ロジックを共有できるのだが、用語差を吸収するために継承クラスを作るのは引っかかるものがあります。
メソッド名をAlias的な使用を許すために、デコレーションWrapperするのは、...........これってOOPとは言わないよなぁ。それどころか邪道な気もする。
よく考えたら、 メソッドのAlias定義って汎用言語では存在しないですよね。 あってもいいような気もしますが。
そもそも同じ動作をシステム名によって呼び方が異なる事が問題なのか....文化だから変更はできないし........