Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 29. 11. 2015, 09:46:57
Ahoj,
píšu si knihovnu a řekněme, že bych uvnitř chtěl používat funkce, které mají nějakou výchozí implementaci, ale chci umožnit tuto implementaci změnit za vlastní. Jak na to? Konkrétní příklad (není sice vhodný, ale jen pro vysvětlení), v kódu budu volat třeba $$(selektor) , což mi vrátí kolekci elementů odpovídající selektoru. V knihovně tato funkce bude implementována čistým JavaScriptem. Kdokoli bude knihovnu používat bude moci ale napsat své vlastní implementace, třeba s využitím jQuery.
Mám to psáno v TypeScriptu. Díky za rady |
||
Keeehi Profil |
#2 · Zasláno: 29. 11. 2015, 12:42:03
Použij decorator pattern.
|
||
yFang Profil |
#3 · Zasláno: 29. 11. 2015, 13:50:48
joe:
Použil bych Strategy pattern. Uděláš nějakou defaultní strategy, která se bude používat a uživatel knihovny bude moct napsat vlastní a nastavit ji místo defaultní. |
||
joe Profil |
#4 · Zasláno: 30. 11. 2015, 22:56:48
Díky za rady, patternů je nějak hodně, sám jich moc neznám a možná nějaké používám, ani o tom nevím. V tomto případě bych se přikláněj spíše ke Strategy patternu, využití interface jsem plánoval, pak jsem si ale řekl, že ta třída by mohla mít statické metody, byly by to spíše takové helpery, pak už by možná vlastně jen stačilo, aby se načetl v kódu jiný soubor a nic jiného se neřešilo (?) a ten interface by tam byl takový pomyslný (?)
|
||
tiso Profil |
#5 · Zasláno: 30. 11. 2015, 23:15:39
joe: „aby se načetl v kódu jiný soubor a nic jiného se neřešilo“
Takže chceš, aby sa vlastne tá tvoja knižnica nepoužívala? To nie je problém. |
||
joe Profil |
#6 · Zasláno: 30. 11. 2015, 23:22:52
tiso:
Ne, ta má knihovna je tvořena několika soubory a momentálně řeším minifikaci tak, že vezmu kód knihovny a aplikace postavené na ní a teprve poté kód zminifikuju. Myslel jsem jeden soubor, že se nahradí za jiný, když bude potřeba. |
||
tiso Profil |
#7 · Zasláno: 30. 11. 2015, 23:28:56
joe: takže potrebuješ niečo ako jQuery UI Download Builder s tým, že si tam niekto môže nahrať vlastnú verziu skriptov? A budeš validovať, že tvoj a jeho súbor obsahuje všetky funkcie s rovnakými parametrami a návratovými hodnotami?
|
||
Časová prodleva: 8 let
|
0