質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

Q&A

解決済

1回答

292閲覧

多層アーキテクチャの依存関係について

torimingo

総合スコア122

アーキテクチャ

アーキテクチャとは、情報システム(ハードウェア、OS、アプリケーション、ネットワーク等)の設計方法、設計思想、設計思想に基づいて構築されたシステム構造をアーキテクチャと呼びます

0グッド

0クリップ

投稿2018/12/14 05:50

多層アーキテクチャでは、基本的に「上位層へは依存しないこと」と言われておりますが、たとえば、ビジネスロジック層で計算した結果をUIに表示させたいときは、上位層のプレゼンテーション層へのアクセスが必須になる(ビジネスロジック層のオブジェクトは、プレゼンテーション層のオブジェクトを持っている必要がある)と思ってしまうんですが、上位層へ全く依存せずに下位層を実装することって可能なんでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ビジネスロジック層で計算した結果をUIに表示させたいときは、上位層のプレゼンテーション層へのアクセスが必須になる(ビジネスロジック層のオブジェクトは、プレゼンテーション層のオブジェクトを持っている必要がある)

ないです。UI→プレゼンテーション層→ビジネスロジック層のような問い合わせの流れで動きますので、ビジネスロジックからプレゼンテーション層を参照する必要はないかと思います。

投稿2018/12/14 05:53

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2018/12/14 05:54

逆に、どうして「必要がある」と思われたのでしょうか。
torimingo

2018/12/14 06:00

早急なご回答をありがとうございます。質問があります。 たとえば、ボタン(UI)を押下すると、ビジネスロジック層でなにかしらの計算をして、結果をテキストビューに表示するとします。 ビジネスロジックで計算するまでは上位層を参照しなくても実装できると思います。しかし、計算結果をテキストビューに表示する際は、ビジネスロジック層はテキストビューのオブジェクトを持っている必要があるのではないでしょうか。ビジネスロジック層がテキストビューのオブジェクトを知らずして、テキストビューに表示させる方法がわかりません。
maisumakun

2018/12/14 06:02 編集

ビジネスロジック側で「計算が終わったらこれを実行する」というようなイベントフックを用意して、そこでUI側から描画処理を入れるようにすれば、ビジネスロジック側が使い方の知識を持つ必要はありません。
maisumakun

2018/12/14 06:09

もしくは、そんなに時間のかかる計算でもないのであれば、UI側から「計算を行う→値を取得する」として、ビジネスロジックはただ使われるだけ、という形でも問題ないかと思います。
torimingo

2018/12/14 06:17

イベントフックという機能を初めて聞きましたので勉強しようと思います。 UI側から「計算を行う→値を取得する」という指示をビジネスロジックへする方法はわかりやすかったです。 ありがとうございました。m(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問