From 18ed93c14fcafdfeb3f659242a43672b373cb370 Mon Sep 17 00:00:00 2001 From: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br> Date: Mon, 29 May 2017 10:52:53 -0300 Subject: [PATCH] Issue #14: Convert Engine class to Singletion pattern Signed-off-by: Lucas Fernandes de Oliveira <lfo14@inf.ufpr.br> --- src/core/engine.spec.ts | 2 +- src/core/engine.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/engine.spec.ts b/src/core/engine.spec.ts index 13f64fcb..b6430883 100644 --- a/src/core/engine.spec.ts +++ b/src/core/engine.spec.ts @@ -27,7 +27,7 @@ import { View } from "./view"; import { engineScenario } from "../../test/scenario"; describe("engine class", () => { - const engine = new Engine(); + const engine = Engine.getInstance(); const met = engineScenario.metrics; const dim = engineScenario.dimensions; diff --git a/src/core/engine.ts b/src/core/engine.ts index af1640a8..b060a2f7 100644 --- a/src/core/engine.ts +++ b/src/core/engine.ts @@ -25,11 +25,21 @@ import { Query } from "../common/query"; import { RelationType } from "../common/types"; export class Engine { + private static instance: Engine; + private views: View[] = []; private metrics: Metric[] = []; private dimensions: Dimension[] = []; - constructor () { } + private constructor () { } + + public static getInstance(): Engine { + if (this.instance == null) { + this.instance = new Engine(); + } + + return this.instance; + } public getViews() { return this.views; -- GitLab