Đây là một sự khởi đầu nhanh chóng để chuyển bánh răng ...
ParkingLot là một lớp học.
ParkingSpace là một lớp học.
ParkingSpace có Lối vào.
Lối vào có vị trí hoặc cụ thể hơn, khoảng cách từ Lối vào.
ParkingLotSign là một lớp.
Chỗ đỗ xeKhông có ParkingMotSign.
ParkingLot có số lượng ParkingSpaces hữu hạn.
HandicappedParkingSpace là phân lớp của ParkingSpace.
RegularParkingSpace là một phân lớp của ParkingSpace.
CompactParkingSpace là một phân lớp của ParkingSpace.
ParkingKhông giữ mảng ParkingSpaces, và một mảng riêng biệt của ParkingSpaces trống theo thứ tự khoảng cách từ lối vào của nó.
ParkingLotSign có thể được thông báo để hiển thị "đầy đủ", hay "trống rỗng", hay "trống/bình thường/phần chiếm" bằng cách gọi .Full(), .Empty() hoặc .Normal()
Parker là một lớp học.
Parker có thể đỗ xe().
Parker có thể Unpark().
Giá trị là một phân lớp của Parker có thể gọi ParkingLot.FindVacantSpaceNearestEntrance(), trả về một ParkingSpace.
Parker có ParkingSpace.
Parker có thể gọi ParkingSpace.Take() và ParkingSpace.Vacate().
Parker gọi Entrance.Entering() và Entrance.Exiting() và ParkingSpace thông báo ParkingLot khi nó được thực hiện hoặc bỏ trống để ParkingLot có thể xác định xem nó có đầy đủ hay không. Nếu nó vừa mới đầy hoặc mới trống hoặc mới không đầy hoặc trống, nó sẽ thay đổi ParkingLotSign.Full() hoặc ParkingLotSign.Empty() hoặc ParkingLotSign.Normal().
HandicappedParker có thể là phân lớp của Parker và CompactParker một phân lớp của Parker và RegularParker là phân lớp của Parker. (có thể là quá mức cần thiết.)
Trong giải pháp này, có thể Parker được đổi tên thành Ô tô.
Bạn đã nhảy lên và kêu lên "điều này có liên quan gì đến sách?" và bão ra? –
Tôi đã được hỏi bởi một anh chàng đã đi đến một tình huống khác. Khi tôi sử dụng một cuốn sách gần như sách giáo khoa Gang of Four một cách thích hợp, ông ấy nói "Ít nhất bạn biết đa hình." Sau đó tôi được cảm ơn vì đã đến và bảo họ sẽ cho tôi biết. Tôi không ấn tượng. –
Không phải vấn đề quản lý bộ nhớ này phải không? –