Tôi tìm thấy rất nhiều liên kết trên metaclasses, và hầu hết trong số họ đề cập rằng chúng rất hữu ích cho việc thực hiện các phương pháp nhà máy. Bạn có thể chỉ cho tôi một ví dụ về việc sử dụng metaclasses để thực hiện mẫu thiết kế không?Thực hiện mẫu thiết kế nhà máy sử dụng metaclasses trong python
Trả lời
tôi muốn nghe ý kiến nhân dân về vấn đề này, nhưng tôi nghĩ rằng đây là một ví dụ về những gì bạn muốn làm
class FactoryMetaclassObject(type):
def __init__(cls, name, bases, attrs):
"""__init__ will happen when the metaclass is constructed:
the class object itself (not the instance of the class)"""
pass
def __call__(*args, **kw):
"""
__call__ will happen when an instance of the class (NOT metaclass)
is instantiated. For example, We can add instance methods here and they will
be added to the instance of our class and NOT as a class method
(aka: a method applied to our instance of object).
Or, if this metaclass is used as a factory, we can return a whole different
classes' instance
"""
return "hello world!"
class FactorWorker(object):
__metaclass__ = FactoryMetaclassObject
f = FactorWorker()
print f.__class__
Kết quả bạn sẽ thấy là: gõ 'str'
Không cần thiết. Bạn có thể override a class's __new__()
method để trả về một loại đối tượng hoàn toàn khác.
Tôi không nghĩ rằng bạn có thể với metaclasses ... (có thể bạn có thể - nếu như vậy cho tôi biết và tôi sẽ học được điều gì đó :)) – RyanWilcox
Bạn có thể tìm thấy một số ví dụ hữu ích tại wikibooks/python, here và here
các liên kết tôi tình cờ gặp phải. Tôi không thể tìm thấy một ví dụ cụ thể của một nhà máy (mặc dù tất cả đều đề cập đến nó) trong bất kỳ nhà máy nào ... – olamundo
- 1. nhà máy phương pháp thiết kế mẫu
- 2. Mẫu thiết kế nào đối diện với mẫu Nhà máy?
- 3. Thực hiện Python Mẫu thiết kế đối tượng hồ bơi
- 4. Sử dụng các lớp chung trừu tượng trong mẫu thiết kế phần mềm nhà máy
- 5. Sử dụng đúng mẫu thiết kế singleton
- 6. Python metaclasses
- 7. Bạn sử dụng mẫu thiết kế/mẫu thiết kế ứng dụng PHP nào?
- 8. Sử dụng Phản chiếu trong mẫu nhà máy
- 9. Sử dụng metaclasses tốt trong thế giới thực (ví dụ: bằng Python)
- 10. Thiết kế máy trạng thái Python
- 11. Để sử dụng hay không sử dụng Mẫu Nhà nước?
- 12. Các mẫu thiết kế AngularJS: Tôi có nên sử dụng các nhà máy để tạo các hàm tạo dựng không?
- 13. các mẫu thiết kế OO sử dụng để xác nhận
- 14. Sử dụng thiết kế theo hợp đồng bằng Python
- 15. Thiết kế mẫu tốt cho nhiều lịch sử thực thể?
- 16. khi nào nên sử dụng mẫu nhà máy trừu tượng?
- 17. Sử dụng biểu mẫu tùy chỉnh trong nhà máy modelformset?
- 18. Thiết kế máy chủ bằng cách sử dụng SocketAsyncEventArgs
- 19. Việc sử dụng các mẫu thiết kế trong R
- 20. Mẫu thiết kế được sử dụng trong WPF
- 21. Các mẫu thiết kế được sử dụng trong symfony2
- 22. Mẫu nhà máy trong java
- 23. Một mẫu thiết kế cho các nhà xây dựng
- 24. Thiết kế Akka để xác thực (Máy nhà nước hữu hạn)
- 25. Mẫu thiết kế kiến trúc
- 26. Tương đương chức năng của mẫu thiết kế nhà nước
- 27. Mẫu thiết kế có thể áp dụng
- 28. Mẫu thiết kế nào?
- 29. Sử dụng dữ liệu thiết kế WPF với mẫu MVVM
- 30. Thông thường để thừa kế Metaclasses Từ loại?
bạn có thể thêm một chút "yếu tố" vào ví dụ này không, tức là một số tùy chỉnh được áp dụng cho các đối tượng đã tạo? – olamundo