The Borg pattern (offtopic: contains code!)

6 отговора 0 прегледа
#1

The Borg pattern (offtopic: contains code!)

Да ви запозная с "патърна" Борг (Borg pattern -> search://google)

Питонските пичове праим туй когато искаме дадена концепцията да е единична и атомична относно данните които пренася *burrrrrrb, пръъъъъц*. Всички сигурно сте добре запознати с патърна Сингълтън и си спомняте как точно се ограничаваха инстанциите с помоща на private методи и прочее гнусотии които ВИНАГИ забра'ам

Е... Ние Питонджиите също правим НЕЩО подобно, но нашето е малко ... хмм... ДОСТА по кратичко:

# We don't need no stinkin' Singleton!
class Borg:
__shared_state = {}
def __init__(self):
self.__dict__ = Borg.__shared_state

Както виждате вместо да ограничаваме ACCESS-а на всякое боже наименование (методи, клас-неймове, булшити), ние просто викаме фък офф и просто модифицираме ВСЕКИ шибан обект (инстанция) който се появява на тоя свят... Е, сега, ако имате някакви МНОУ сложни обекти, това ще натоварва малко машината { ewentualno vashiat klient ;-) } но... на кой му ПУКА! { men da, no na vas? }

Напрактика ползваме именцето на класа (което ВИНАГИ е атомично и тям подобните му моно-томии { dichotomy? => mono-tomy :D })... за да стигнем до един единствен речник в който е описан state-а на всичко що трябва да бъде Борг...

Е... няма перфекни неща и Borg.blabla не е защитено от ексцесии, но вижте! Само с около един два реда повече, този "недостатък" (на четящия неразбрал потребител) мое да се оправи!

Ето го и моето решение с малко хумор добавен за да се чете 'уеко:

#!/usr/bin/env python

# A BORG INFESTATION! AND THEY ALL LOOK THE SAAAME
# Man your rifles!

class QueenBorg(dict):
""" This is a Borg() not a class()
Why the Queen has chosen a Dictionary class to inherit?
Because The Queen is addicted to powa... that's why ;-) """
__borgy = {} # Fuck you Borgs! you all look different to me.. id(borg) ;-)

def __init__(self, *a, **k):
""" you cannot resist the Borg Queen. you will be assimilated. """
self.__dict__ = QueenBorg.__borgy
super(self, Borg).__init__(*a, **k) # this can be avoided ;-) ... with another Borg haha!

class Prop(QueenBorg):
""" I am a Locutas, a borg... Resistence is Futile """
@classmethod
def infuse(cls, what, who, how, *a, **k):
pass

def __new__(cls, *a, **k):
""" You cannot resist the Borg queen. You will be assimilated, your
life as it has been, is over. """

# "From this Time forward..."
# hah, the bitch learns after all... therefore there is still a chance.
QueenBorg().Prop.infuse(cls.__dict__)

# "You will service... us..."
# HAHA! Now way!!

# "you will be assimilated"
# Yeah yeah we all know... fu "ALL HUMANS ARE BORGS"{!transmission terminated}
#
cls.__dict__ = QueenBorg.Prop.__dict__

# Eh... "this" Queen respects it's bases..
super(cls, QueenBorg).__new__(self, *a, **k) # This also... just dict the first kopy and infuse each and every Prop instance

class SomeBastard(QueenBorg):
def __init__(self, what, *a, **k):
# LOL I STILL can be different :D
pass

# Details:
# License: Fuck you! Public Domain! (author: Boris Dekaroffskye: [email protected])


Enjoy!

Ки, пет

edit: 2 minor stupidity bugs and formatting

Редактирано от Dekaroffskye на

Отговор
в отговор на Dekaroffskye #2

Re: The Borg pattern (offtopic: contains code!)

припомни ли си джавата?

...
Отговор
в отговор на Dekaroffskye #3

Re: The Borg pattern (offtopic: contains code!)

От жегата ти се е размътило ... каквото имаш в краниума...

чети и дишай по-леко
Отговор
в отговор на Dekaroffskye #4

Re: The Borg pattern (offtopic: contains code!)

това ми напомня....преди време имаше една фирма Борг ....може би над 10г...какво стана с нея ?

Отговор
в отговор на 435 #5

Re: The Borg pattern (offtopic: contains code!)

Беше купена от Джонсън Контролс.

Отговор
в отговор на Pechenia #6

Re: The Borg pattern (offtopic: contains code!)

Прекаляваш със сложните думички, не ти отива

Ки, пет, и ти
Отговор
в отговор на Чепатия #7

Re: The Borg pattern (offtopic: contains code!)

Не, няма и да го правя... Както виждаш ...

Ки, пет, и ти
Отговор