Znalazłem wiele linków na temat metaclasses, a większość z nich wspomina, że są one użyteczne przy wdrażaniu metod fabrycznych. Czy możesz pokazać mi przykład użycia metaclasses do implementacji wzorca projektowego?Implementacja fabrycznego wzorca projektowego za pomocą metaclasses w python
Odpowiedz
Chciałbym usłyszeć komentarze ludzi na ten temat, ale myślę, że jest to przykład tego, co chcesz zrobić
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__
Wynik zobaczysz: wpisz 'str'
Nie ma potrzeby. Możesz zwrócić override a class's __new__()
method, aby zwrócić zupełnie inny typ obiektu.
Nie sądzę, że możesz z metaclasses ... (może możesz - jeśli tak, daj mi znać, a dowiem się czegoś :)) – RyanWilcox
Można znaleźć kilka pomocnych przykładów na wikibooks/python, here i here
to są dokładnie linki, na które natknąłem się. Nie mogłem znaleźć konkretnego przykładu fabryki (choć wszyscy o tym wspominali) w którymkolwiek z nich ... – olamundo
- 1. Zrozumienie wzorca projektowego MVC w Cocoa Touch
- 2. Python Implementacja wzorca projektowania puli obiektów
- 3. Jak dynamicznie ustawić zmienne PHP, wzorca projektowego
- 4. Implementacja wzorca repozytorium
- 5. Używanie modularnego wzorca projektowego w JavaScript z ustawieniami DOM
- 6. Implementacja wzorca repozytoryjnego z Laravelem
- 7. Czy mogę używać wzorca projektowego konstruktora razem ze stanem hibernacji?
- 8. naiwna implementacja wzorca dekorator w Objective-C
- 9. Prawidłowo otwórz/zamknij bazę danych za pomocą wzoru projektowego Singleton
- 10. Implementacja dodatku za pomocą mnożenia
- 11. Porządkowanie klas za pomocą wzorca projektowania repozytorium
- 12. Jak używać wzorca strategii za pomocą C#?
- 13. Czy implementacja obiektu java.util.Iterator używa wzorca stanu?
- 14. Implementacja transformacji szerokości obrysu (Python)
- 15. Repository implementacja wzorca modelu danych w strukturze drzewa
- 16. Narzut i implementacja za pomocą shared_ptr
- 17. CDI nie działa w obiektach utworzonych na podstawie implementacji wzorca fabrycznego
- 18. Implementacja dostawcy OAuth 2.0 za pomocą Coldfusion
- 19. Python split string według wzorca
- 20. Zrozumienie wzoru fabrycznego
- 21. Dostosowywanie zachowanie fabrycznego OWIN/Katana UserManager
- 22. svg diagramy za pomocą python
- 23. tłumaczenia jednego wzorca ciąg do innego wzorca strun za pomocą XSLT
- 24. Usuwanie wzorca pliku za pomocą git-update-index --remove
- 25. Python/Scipy - implementacja sigma optimize.curve_fit do optimize.leastsq
- 26. przepisywanie kodu za pomocą dopasowywania do wzorca F #
- 27. C# limit czasu zadania fabrycznego
- 28. Implementowanie ogólnego wzorca repozytorium za pomocą starego ado.net
- 29. Generowanie określonego wzorca bitowego za pomocą operatorów bitowych
- 30. Odsłanianie wzorca modułu - testowanie jednostki za pomocą Jasmine
czy można dodać trochę "faktyczności" do przykładu, tj. Pewne dostosowanie zastosowane do tworzonych obiektów? – olamundo