Tôi không tin rằng có một thứ như "định nghĩa nghiêm ngặt" của một mẫu. Bởi mô hình tự nhiên của chúng tồn tại để nắm bắt được bản chất của một vấn đề mà cây trồng lên thời gian và thời gian một lần nữa trong phần mềm và phác thảo như thế nào một giải pháp có thể xem xét.
Cụ thể với mẫu Nhà máy, không, không yêu cầu các phương pháp của nhà máy là tĩnh. Bản chất của mẫu là bạn có một đối tượng chịu trách nhiệm tạo ra các thể hiện của một lớp khác. Cách bạn thực hiện điều này thực sự tùy thuộc vào bạn, mặc dù một cách phổ biến, như được mô tả trong mẫu, là sử dụng một phương thức tĩnh trên một lớp. Tuy nhiên, chúng tôi có một cơ chế nhà máy ở một trong những hệ thống của chúng tôi thực sự là hai giai đoạn. Bạn sử dụng một phương thức tĩnh trên một lớp để tạo đối tượng factory, có thể được cấu hình để chọn giữa một tập các triển khai, và sau đó sử dụng đối tượng factory để đóng dấu các thể hiện của đối tượng mà bạn cần thực hiện công việc thực.
Đồng thời xem xét việc triển khai mẫu nhà máy bằng ngôn ngữ không có phương pháp tĩnh. Ví dụ, trong Scala bạn sẽ sử dụng một đối tượng thay vì một lớp. Mặc dù hành vi này rất giống với việc sử dụng các phương thức tĩnh trên một lớp trong Java, bản chất của việc triển khai thực hiện khá khác nhau.
+1 thực sự quan trọng không mong đợi các mẫu làm suy nghĩ của bạn cho bạn, các mẫu không nghiêm ngặt, các mẫu không khoan dung, các mẫu không kiểm soát được! – djna