Skip to content

Latest commit

 

History

History
42 lines (32 loc) · 1.62 KB

Pattern.md

File metadata and controls

42 lines (32 loc) · 1.62 KB

Паттерны программирвоания


Паттерн 'Моносостояние'

Моносостояние - это паттерн программирования при котором есть несколько объектов одного класса, и все экземпляры этого класса имеют одни общие атрибуты, любая работа в получении или изменении или удалении этих атрибутов, приводит к такому же изменению этих атрибутов у всех других экземпляров этого класса.

То есть у нас есть несколько объектов одного и того же класса, и все эти объекты ссылаются на одни и теже данные.

Реализация происходит через статический атрибут класса ссылка на который присваивается каждому новому созданному объекту.

    class Monopattern():
        __atributs = {
            'id': 0,
            'name': None
        }

        def __init__(self):
            self.__dict__ = Monopattern.__atributs

    x1 = Monopattern()
    x2 = Monopattern()

    print(f'x1:{x1.__dict__} x2:{x2.__dict__}')

    x1.id = 15
    x2.name = 'Hello world'

    print(f'x1:{x1.__dict__} x2:{x2.__dict__}')

    # Вывод
    # x1:{'id': 0, 'name': None} x2:{'id': 0, 'name': None}
    # x1:{'id': 15, 'name': 'Hello world'} x2:{'id': 15, 'name': 'Hello world'}