Tại sao Borg pattern tốt hơn so với Singleton pattern?Tại sao mẫu Borg tốt hơn mẫu Singleton trong Python
Tôi hỏi vì tôi không thấy chúng dẫn đến bất kỳ điều gì khác biệt.
Borg:
class Borg:
__shared_state = {}
# init internal state variables here
__register = {}
def __init__(self):
self.__dict__ = self.__shared_state
if not self.__register:
self._init_default_register()
Singleton:
class Singleton:
def __init__(self):
# init internal state variables here
self.__register = {}
self._init_default_register()
# singleton mechanics external to class, for example this in the module
Singleton = Singleton()
Những gì tôi muốn hiển thị ở đây là đối tượng phục vụ, cho dù thực hiện như Borg hoặc Singleton, có một trạng thái nội bộ không tầm thường (nó cung cấp một số dịch vụ dựa trên nó) (Tôi có nghĩa là nó phải là một cái gì đó hữu ích nó không phải là một Singleton/Borg chỉ để cho vui).
Và trạng thái này phải được đặt trước. Tại đây việc triển khai Singleton đơn giản hơn vì chúng tôi xử lý init làm thiết lập trạng thái toàn cầu. Tôi thấy nó khó xử khi đối tượng Borg phải truy vấn trạng thái bên trong của nó để xem liệu nó có nên tự cập nhật hay không.
Tình trạng nội bộ càng trở nên tồi tệ hơn. Ví dụ, nếu đối tượng phải lắng nghe tín hiệu teardown của Application để lưu đăng ký của nó vào đĩa, thì việc đăng ký đó chỉ nên được thực hiện một lần, và điều này dễ dàng hơn với Singleton.
Mẫu Borg?^_^Lần đầu tiên tôi nghe nói về nó là http://c2.com/cgi/wiki?MonostatePattern –
Kiếm tiền? Chúng tôi là Martellis. Chúng tôi nói Borg. – u0b34a0f6ae