Tôi đang cố gắng để thực hiện một thiết kế như sau:iPhone Objective-C foreach thiết kế
Touch
lớp: Hoạt động như một giao diện, một số lớp kế thừa từ nó:
MoveTouch
lớp
JumpTouch
lớp
InterfaceTouch
lớp
Sau đó, tôi muốn có danh sách các đối tượng Touch
. Sau đó tôi muốn có thể loại bỏ tất cả các đối tượng MoveTouch
CHỈ (không phải các đối tượng khác), và sau đó tất cả các đối tượng JumpTouch
riêng biệt, v.v., nằm ngoài danh sách lớn này. Thật không may, for (MoveTouch* t in touches)
không làm những gì tôi muốn; mọi thứ trong toàn bộ danh sách đều được thực hiện.
... có nghĩa là bạn sẽ làm điều gì đó như gọi [t update] và sau đó mỗi mục sẽ quyết định việc cần làm tại chu kỳ cập nhật. Nhưng đó không phải là phổ quát. Có rất nhiều lần khi bạn có một tin nhắn bạn muốn gửi đến một lớp học, và không phải là một người khác. –
không phổ biến, nhưng có xu hướng mùi, theo ý kiến của tôi. Đặc biệt là khi bạn chỉ ra rằng bạn đang thiết kế các lớp học là tốt. –
Tôi thực sự không làm đa hình với điều này. Mong muốn cơ bản của tôi là cách tách biệt các loại chạm khác nhau. Các loại cảm ứng (Move, Jump, Interface, vv) có thể được quyết định ngay lập tức khi tạo ra nó, điều này xảy ra trong "touchesBegan". Từ đó trở đi, việc tách riêng chức năng của những gì sẽ xảy ra khi bạn MOVE chạm vào hoặc nhấn vào liên lạc đó, v.v .. Tôi đoán có lẽ sự kế thừa là một chút ưa thích cho điều này? Có lẽ chỉ là một enum đơn giản sẽ làm việc? –