2017-02-10 7 views
1

アプリケーション全体を通してデータを保存して渡したい。そのために私は、共有サービス共有サービスにクラスまたはインターフェイスを使用する

import { Injectable } from '@angular/core'; 

export interface IAccountModel { 
    sessionId: string; 
} 

@Injectable() 
export class AccountContextService { 

    AccountModel: IAccountModel = { 
    sessionId: '' 
    }; 

    constructor() { } 

} 

を書いた私はどちらがそのまたはデータを処理するためのインタフェースのためのベストプラクティスの使用クラスであることを質問があります。

メリットとデメリットは何ですか?

答えて

0

インターフェイスの代わりにインターフェイス、抽象クラスまたはクラスを使用することもできますが、重要な制限があります。クラスとOpaqueTokenを注入に使用できます。

class AbstractService {} 

class Service extends AbstractService implements IService {} 

//will not work 
provide: [{provide: IService, useClass: Service}] 
constructor(private service:IService){} 

//will work 
provide: [{provide: AbstractService, useClass: Service}] 
constructor(private service:AbstractService){} 
constructor(private @Inject(AbstractService) service:IService){} 
関連する問題