gyári módszer

összefoglaló

a gyári módszer új objektumokat hoz létre az ügyfél utasításai szerint. Az objektumok létrehozásának egyik módja a JavaScript – ben egy konstruktor függvény meghívása az új operátorral. Vannak azonban olyan helyzetek, amikor az ügyfél nem tudja, vagy nem szabad tudnia, hogy a több jelölt közül melyiket kell példányosítani. A gyári módszer lehetővé teszi az ügyfél számára, hogy átruházza az objektum létrehozását, miközben továbbra is ellenőrzi, hogy melyik típust kell példányosítani.

a gyári módszer fő célja a bővíthetőség. A gyári módszereket gyakran használják olyan alkalmazásokban, amelyek különböző objektumok gyűjteményeit kezelik, karbantartják vagy manipulálják, ugyanakkor számos közös tulajdonsággal (azaz módszerekkel és tulajdonságokkal) rendelkeznek. Példa erre a dokumentumok gyűjteménye Xml dokumentumok, Pdf dokumentumok és Rtf dokumentumok keverékével.

Diagram

Diagram JavaScript gyári módszer tervezési minta

résztvevők

a mintában részt vevő objektumok a következők:

  • Creator — mintakódban: Factory
    • a ‘factory’ objektum, amely új termékeket hoz létre
    • implementálja a ‘factoryMethod’ – t, amely visszaadja az újonnan létrehozott termékeket
  • AbstractProduct — nem használatos a JavaScript-ben
    • deklarál egy interfészt a termékekhez
  • ConcreteProduct — mintakódban: alkalmazottak
    • a létrehozandó termék
    • minden termék ugyanazt az interfészt támogatja (tulajdonságok és módszerek)

mintakód JavaScript-ben

ebben a JavaScript példában a gyári objektum négy különböző típusú alkalmazottat hoz létre. Minden alkalmazott típusa eltérő óradíjjal rendelkezik. A createalkalmazotti módszer a tényleges gyári módszer. Az ügyfél utasítja a gyárat, hogy milyen típusú alkalmazottat hozzon létre egy type argumentum átadásával a Factory Metódusba.

a diagramban szereplő AbstractProduct nem valósul meg, mert a Javascript nem támogatja az absztrakt osztályokat vagy interfészeket. Azonban továbbra is biztosítanunk kell, hogy minden alkalmazott típus azonos interfésszel rendelkezzen (tulajdonságok és módszerek).

négy különböző alkalmazott típus jön létre; mindegyik ugyanabban a tömbben van tárolva. Minden alkalmazottnak meg kell mondania, hogy mi az óradíja.

a log függvény egy segítő, amely összegyűjti és megjeleníti az eredményeket.

function Factory() { this.createEmployee = function (type) { var employee; if (type === "fulltime") { employee = new FullTime(); } else if (type === "parttime") { employee = new PartTime(); } else if (type === "temporary") { employee = new Temporary(); } else if (type === "contractor") { employee = new Contractor(); } employee.type = type; employee.say = function () { log.add(this.type + ": rate " + this.hourly + "/hour"); } return employee; }}var FullTime = function () { this.hourly = "$12";};var PartTime = function () { this.hourly = "$11";};var Temporary = function () { this.hourly = "$10";};var Contractor = function () { this.hourly = "$15";};// log helpervar log = (function () { var log = ""; return { add: function (msg) { log += msg + "\n"; }, show: function () { alert(log); log = ""; } }})();function run() { var employees = ; var factory = new Factory(); employees.push(factory.createEmployee("fulltime")); employees.push(factory.createEmployee("parttime")); employees.push(factory.createEmployee("temporary")); employees.push(factory.createEmployee("contractor")); for (var i = 0, len = employees.length; i Run 

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.