私は駐車場の例を取り組んでおり、私が設計しているようにいくつかの仮定をしました。駐車場、OOPデザイン - カスタムデザイン
アイテム/オブジェクトに属性を割り当てる際には、いくつか質問があります。
1)駐車スペースがシステムによって割り当てられていない場合(つまり、ユーザーがロットにのみ割り当てられている場合)、適切な場所(自動車/自転車/トラック/障害者)を見つけて駐車します。
私はParkingSpaceオブジェクトは必要ないと思っていますが、代わりに、category_of_parking_spaceのそれぞれにno_of_free_placesの数を保持できます。
駐車スペースが大きいので、3つの変数を維持するだけです。
- no_of_free_slots_Car
- no_of_free_slots_Bike
- no_free_slots_Truck
- 車が入ってくるときno_free_slots_Handicapped
、私たちは可能なXの場所の意味上記の値(の一つ、利用者を減らします1つを選択し、そこに駐車する)、&車両が出るときに、対応する値を増やします。 (要するに駐車場は誰にも割り当てられていないため、車両は適任の場所の1つに行きます)
2)私たちには1台のグローバルパーキングメーターがあるとします。
- > start_time/end_timeをVehicleの属性にする必要がありますか?
または
- > vehicle_id、start_time、end_timeはParkingMeterの一部です。
3)parkingSpaceオブジェクトの必要性を仮定して、4_wheeler、2_wheeler、handicappedはenum型、または別のクラスであるべきです。
enumの場合、findEmptySlot(parkingSpace_type)を使用できます。
それらが別々のクラスであり、ParkingLotにメソッドfindEmptySlot()がある場合。
どのように適切なスロットを取得できますか?
ParkingMeterは車両のスタート、終了時刻を正しく設定する責任がありますか?
複数の量を持っている場合は、1時間 - 20 $、2時間 - 30 $、3時間 - 40 $、5hr - 50 $
はそれで良いParkingMeterクラスのこれらの部分を持っているか、別のクラス「ParkingPriceにそれらを含めます「
最初の部分の追加情報を追加して質問を編集しました。 2番目と3番目のものは問題ありません。第1部を見てください。 – sravanreddy001
これで、Spaceクラスを作成するか変数を減らすかを尋ねています。私はスペースの配列(または各スペースタイプの配列)を保つと言う。それは、どの車が存在しているかを検出するという点で柔軟性を持ち、スペースを保持している実際の車への参照さえも(私の3番目の答えに従って)可能にします。 –
ありがとうございました..元の投稿の最後に追加の投稿を追加しました。 – sravanreddy001