2009-02-12 29 views
11

Các mixin có được coi là mẫu thiết kế không? Cấu trúc?Mixin có được coi là mẫu thiết kế không?

+3

Được xem là ai? Tôi không nghĩ rằng có một danh sách chính thức của các mẫu thiết kế. –

+2

tất nhiên có danh sách chính thức của các mẫu thiết kế, bắt đầu bằng "Mẫu thiết kế: Các yếu tố của phần mềm hướng đối tượng tái sử dụng" và các tài liệu trẻ hơn. –

+0

Nhưng cũng có nhiều mẫu thiết kế khác ngoài 23 mẫu được đề cập trong sách. Tôi nghĩ, mixin có thể ở một mức độ nào đó được coi là một kiểu thiết kế. –

Trả lời

7

Chúng là tính năng ngôn ngữ. Một "mẫu" khác với một tính năng, ở chỗ nó giải quyết một tập hợp các lực có thể ảnh hưởng đến một tình huống theo mâu thuẫn. Các tính năng, do sự hiện diện hoặc vắng mặt của chúng, có xu hướng tạo ra các lực mà mẫu phân giải. Nhiều mẫu thiết kế (Double Dispatch là một ví dụ điển hình) đến gần để làm việc xung quanh các hạn chế về ngôn ngữ (trong trường hợp này là phương thức gửi đi trên một đối số).

+1

Không có trong .NET. Nó giống như một mô hình. – 4thSpace

+0

Nếu bạn biết câu trả lời, tại sao bạn lại đặt câu hỏi? ;) – Morendil

+0

từ khoá là "thích". Điều đó nghe có vẻ không chắc chắn với tôi. – 4thSpace

3

Vâng, đó là trong D.

"Một mẫu thiết kế là một giải pháp tái sử dụng chung cho một vấn đề thường xảy ra trong thiết kế phần mềm" - Wikipedia

D được biên dịch để máy và với việc sử dụng các mixin, bạn có thể sử dụng nó để làm cho các khuôn mẫu hữu ích hơn nhiều so với chúng giống như C++.

http://www.digitalmars.com/d/1.0/template-mixin.html

2

Mixins không phải là mẫu thiết kế. Hầu hết thời gian họ là những tính năng ngôn ngữ !! Ví dụ: trong ngôn ngữ D "mixin" là một từ khóa. Sử dụng một từ khóa cho học sinh dự định của nó là không có mẫu. Cách sử dụng điển hình của các từ khóa/tính năng ngôn ngữ có thể được gọi là "thành ngữ".

Cấu trúc phân cấp là "không có gì", thành ngữ, mẫu thiết kế, mẫu kiến ​​trúc.

Các vấn đề liên quan