it-swarm-vi.com

Mẫu thiết kế được sử dụng thường xuyên nhất là gì?

Những mẫu thiết kế nào bạn nghĩ là phổ biến nhất?

24
Tamara Wijsman

Tôi khá chắc chắn phổ biến nhất là 'Quả bóng lớn'. Thật không may cho tất cả chúng ta.
[.__.] http://en.wikipedia.org/wiki/Big_ball_of_mud

39
Jay

MVC và các biến thể của nó chắc chắn là một trong những mẫu thiết kế hàng đầu.

25
ysolik

Nếu bạn đang nói về mẫu thiết kế Gang-of-Four tôi sẽ phải nói Singleton. Đây là một tình trạng thực sự đáng buồn - gần như thể các lập trình viên nghe về sự kỳ diệu của các mẫu thiết kế và sau đó chỉ đơn giản dừng lại sau lần đầu tiên.

Nếu bạn đang nói về các mẫu kiểu kiến ​​trúc (nói cách khác, các mẫu thiết kế trải rộng trên nhiều lớp hoặc lớp) tôi sẽ phải nói MVC . Một vài cái phổ biến khác là mẫu repositorydịch vụ định vị.

21
Jaco Pretorius

Người quan sát

Nếu bạn đã từng sử dụng một sự kiện. Bạn đã sử dụng Observer.

16
Steven Evers

Người trang trí

Thêm chức năng cho một đối tượng trong thời gian chạy thông qua thành phần. Yêu thích cá nhân của tôi.

Chỉnh sửa: Ngoài ra Nhà máy có lẽ là một trong những phổ biến nhất.

7
JD Isaacks

Tại sao không ai nhắc đến iterator chưa? Đặc biệt là với tất cả các bản đồ tạo nên các cấu trúc dữ liệu phức tạp ... đó là bản đồ tôi sử dụng nhiều nhất. Hay chúng ta đang nói về các mẫu mà chúng ta thực hiện lại?

5
ToTheBeach

Mẫu chiến lược

Nếu bạn đã từng sử dụng tiêm phụ thuộc, bạn đã sử dụng mẫu chiến lược.

5
richeym

Mặt tiền

Hãy nghĩ về bất kỳ giao diện REST như Twitter hoặc các API SO. Nó ẩn một loạt các công cụ hỗ trợ ngược, ít nhất là trong trường hợp twitters, có thể phức tạp khủng khiếp .

Tôi có quan tâm các tweet của bảng @ apklusk được lưu trữ trong không? Và nó có bộ nhớ cache nhanh? Và rằng @shemnon có lượng độc giả thấp như vậy, các tweet luôn bị hết bộ nhớ? Đó là sự kỳ diệu của Mặt tiền.

5
shemnon

Tôi ngạc nhiên không ai nhắc đến mẫu Factory, theo kinh nghiệm của tôi, đó là một trong những mẫu được sử dụng nhiều nhất (và cũng bị lạm dụng nhất) trong số các mẫu ngoài kia. Nếu không phải là đầu tiên, có lẽ là singleton nên là đầu tiên, tôi đã nghĩ rằng đây sẽ là một thứ hai gần.

3
AlexC

Cùng với câu trả lời trước đây của tôi, tôi sẽ thêm một câu hỏi mới mà tôi đã gặp hôm nay từ con thú của một dự án được kế thừa:

Sao chép/Dán

Trong khi gỡ lỗi, tôi chạy vào một đoạn mã gọi 2 hàm có tên tương tự:

if(x)
   Func1
else
   Func2

Func1 và Func2 có cùng tham số. Tôi kéo chúng ra và khác, và chúng giống nhau 100% ngoại trừ các cuộc gọi Func1 Func3 và Func2 gọi Func4. Tôi kéo chúng ra và làm chúng khác đi. 100% giống nhau, ngoại trừ 1 dòng. Vì vậy, một lập trình viên trước đó đã quyết định sao chép và dán hai hàm 50 dòng, thay vì thêm một tham số cờ, vào 2 hàm riêng được sử dụng ở đúng 1 vị trí. Nó làm tôi muốn khóc.

3
Jay

Nói về các mẫu thiết kế của Gang-of-Four, tôi không thể nghĩ ra một chương trình không sử dụng mẫu Observer. Ngoài ra, như Jaco đã đề cập, Singleton cũng được sử dụng rất nhiều, thật không may, nó đã trở thành một cái búa (bất kỳ lập trình viên nào cũng sử dụng nó ngay cả khi nó không hoàn toàn cần thiết).

2
Cristian

Phiên dịch

Hiếm khi thực hiện, thường được sử dụng. Bộ chọn XPATH, XSLT, Regex, jQuery, v.v.

2
Jesse Millikan

Đặc điểm kỹ thuật

Tôi không nghĩ rằng nó được liệt kê trong GoF, nhưng tôi luôn sử dụng các biến thể của nó.

1
John Kraft

Tôi ngạc nhiên không ai nói "Builder". Hoặc "Bộ chuyển đổi". Chúng có thể không kỳ lạ như một số trong những cái khác được đề cập, nhưng tôi sử dụng chúng mọi lúc. Factory và Tóm tắt Factory cũng rất phổ biến (nhưng chúng đã được sử dụng).

1
Tim Claason

Rõ ràng, mẫu thiết kế được sử dụng thường xuyên nhất là Spaghetti .

1
SK-logic

Ở cấp độ thiết kế phần mềm, tôi sẽ lập luận rằng Hợp chất, Chiến lược và Mẫu (và với một phần mở rộng ít hơn, Nhà máy) là cách sử dụng rộng rãi nhất. Trong thập kỷ gần đây, chúng tôi đã thấy một ưu tiên cho thành phần hơn sự kế thừa khi xây dựng các hệ thống của chúng tôi bằng cách sử dụng một thiết kế OO. Kết quả là, sự kết hợp của các mẫu vừa nêu có vai trò quan trọng hơn nhiều so với tất cả những người khác IMO.

Về mặt kiến ​​trúc, tôi sẽ tranh luận về MVC cho doanh nghiệp và các mẫu dựa trên các máy trạng thái ở mặt được nhúng.

0
luis.espinal