2016-11-07 15 views
2

angular2 serviceはどこで生成されるべきですか? angular2の最新のドキュメントでは、appフォルダ内にサービスを生成することができますが、私が従っているビデオチュートリアルではサービスが作成されたsharedフォルダが事前に生成されています。私は明らかにそのフォルダを作成することができましたが、何が適切なのか、またその理由を知りたいのですか?サービスはどこで作成または生成されますか?

app-name/src/app/service-name.service.ts

OR

app-name/src/app/shared/service-name.service.ts

+1

あなたのアプリの仕組みには何の効果もありません。それは物事を整理するのが好きです。私は、モジュールフォルダにモジュールサービスを、独自のフォルダに独立したサービスを作成します。 – Sefa

+0

サービスはコンポーネントによって共有されることを意図されていますが、そうではありませんか?そういう意味では、別の共有フォルダにそれらを作成すると何か差が出るのであれば、私は混乱しました。しかし、あなたが言ったことはまあまあです。ありがとう:) – Pragun

答えて

3

私はあなたが使用していると仮定していますAngular-cliフォルダー構造。 Angular-Cliを使用していない場合は、それを使用してください。

コンポーネントAとコンポーネントBがあるとします。

コンポーネントA:サービスS1を使用します。

コンポーネントB:サービスS2を使用します。

この場合、コンポーネントAフォルダにS1サービスを作成し、コンポーネントBフォルダにS2サービスを作成します。

ここで、コンポーネントAとコンポーネントBは、サービスS3を使用したいとします。この場合、サービスを共有フォルダに作成する必要があります。

要約:あなたのアプリのコンポーネント のほとんどで使用されているサービスを作成した場合、共有フォルダに作成するよりもサービスを作成してください。または1つのコンポーネント を使用して、特定の コンポーネントフォルダにサービスを作成する必要があります。

2

それはあなたがアプリケーションのアーキテクチャに階層化されているかに完全に依存。 角度2はモジュール/ドメイン別のグループ化を推奨します。したがって、ドメイン内の各ファイルの名前は.service、.module、.pipe、.directiveなどで終わります。 モジュールとその関連コンテンツをフォルダ内でグループ化しますアプリケーションの他の部分を変更することなく、特定のモジュールを個別に保守することが容易になります。また、モジュール内のルーティングをそのモジュール内にローカライズすることもできます。

したがって、共通の共有モジュールの下にあるすべてのサービスをグループ化し、それらを他のモジュールにエクスポートしたり、関連するモジュールにサービスを格納したりすることは、設計の観点と考え方によって異なります。要件に基づいて適切なアプローチを選択しますが、常にメンテナンス性を考慮して実行してください。

+0

私はこれを感謝します。ありがとう! – Pragun

関連する問題