The Borg pattern (offtopic: contains code!)
6 отговора
0 прегледа
The Borg pattern (offtopic: contains code!)
Да ви запозная с "патърна" Борг (Borg pattern -> search://google)
Питонските пичове праим туй когато искаме дадена концепцията да е единична и атомична относно данните които пренася *burrrrrrb, пръъъъъц*. Всички сигурно сте добре запознати с патърна Сингълтън и си спомняте как точно се ограничаваха инстанциите с помоща на private методи и прочее гнусотии които ВИНАГИ забра'ам
Е... Ние Питонджиите също правим НЕЩО подобно, но нашето е малко ... хмм... ДОСТА по кратичко:
Както виждате вместо да ограничаваме ACCESS-а на всякое боже наименование (методи, клас-неймове, булшити), ние просто викаме фък офф и просто модифицираме ВСЕКИ шибан обект (инстанция) който се появява на тоя свят... Е, сега, ако имате някакви МНОУ сложни обекти, това ще натоварва малко машината { ewentualno vashiat klient ;-) } но... на кой му ПУКА! { men da, no na vas? }
Напрактика ползваме именцето на класа (което ВИНАГИ е атомично и тям подобните му моно-томии { dichotomy? => mono-tomy :D })... за да стигнем до един единствен речник в който е описан state-а на всичко що трябва да бъде Борг...
Е... няма перфекни неща и Borg.blabla не е защитено от ексцесии, но вижте! Само с около един два реда повече, този "недостатък" (на четящия неразбрал потребител) мое да се оправи!
Ето го и моето решение с малко хумор добавен за да се чете 'уеко:
Enjoy!
Ки, пет
edit: 2 minor stupidity bugs and formatting
Питонските пичове праим туй когато искаме дадена концепцията да е единична и атомична относно данните които пренася *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 на
Re: The Borg pattern (offtopic: contains code!)
От жегата ти се е размътило ... каквото имаш в краниума...
чети и дишай по-леко
чети и дишай по-леко
Re: The Borg pattern (offtopic: contains code!)
това ми напомня....преди време имаше една фирма Борг ....може би над 10г...какво стана с нея ?
Re: The Borg pattern (offtopic: contains code!)
Прекаляваш със сложните думички, не ти отива
Ки, пет, и ти
Ки, пет, и ти
Re: The Borg pattern (offtopic: contains code!)
Не, няма и да го правя... Както виждаш ...
Ки, пет, и ти
Ки, пет, и ти