プログラミング

プログラミング

Angularのfactoryクラスを使ってseriviceに移行する利点【プログラマーは理解しておきたい】

    690 views

    読了時間 : 約1分6秒

    Angularにおけるserviceとfactoryの違いについてはよく理解されていますが、個人的には必要なコードが少ないfactoryを選ぶようにしていました。しかしそれ以降、一般の開発者に選ばれるようになったのはserviceの方でした。

     

     

    クラスを有効に使いたい時にはserviceが適しています。それはAngularにおいてはクラスが自然にマッピングされるからです。例を見てみましょう。下のコードはES6ではないUsersStoreです。

     

     

    これをES6のクラスに変換すると次のようになります。

     

     

    レジストレーションの行はこのように変更されます。

     

     

    UserStoreを注入する既存のコードの振る舞いは同じであるため、スムーズに移行することができます。

     

     

    ここで覚えておきたいのは、注入の行われ方です。

    $httpがクラスのconstructorに提供されるようになっています。たとえばgetAllメソッドにおいて注入されたサービスに後からアクセスするには、メンバーとして保存しなければなりません。その後で、変換されたgetAll関数がthis.$httpとして参照されることを確かめる必要があります。

     

     

    コンストラクタ周りでより多くのコードを入力しなければならないのは面倒で、一部の人たちは敬遠することでしょう。しかし長所に目を向けることも不可能ではありません。重大な責任を負う最高のコントローラーとサービスを書き上げるのがもっと苦痛になるはずです…。

     

     

     

    ※本記事は、Moving Angular Factories to Services With Classesを翻訳・再構成したものです。

    おすすめ新着記事

    おすすめタグ