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

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

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Q&A

解決済

3回答

939閲覧

ModelとかStateみたいな用語がわからない

A2wwM

総合スコア44

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

0グッド

0クリップ

投稿2018/08/17 04:02

タイトルの通りなのですが
よくクラス名とかで○○Model,○○State、たとえばAuthModel,AuthStateのようなものをよく目にしますが
このModelとかStateあとはDataSourceっていうのはなんなのでしょうか?

基本的な用語ですみませんが、教えて頂けますと幸いです。
(Modelはデータをもってくるとかデータを保存するとかデータに関してなにかするところみたいなのはでてきたのですが果たしてこれなのか?という疑念もあり教えて頂けますと幸いです)

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

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

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

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

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

guest

回答3

0

Model(モデル)というのはかなり広く使われる用語ですが、プログラミング用語に限定する場合は
「注目すべきデータの構造、およびそのデータを扱うロジックについて設計したもの、あるいはそれを実装したもの」
となります。
扱うライブラリによっては、かなりデータに近い部分(あるいはデータそのもの)を「なんとかModel」と名付けることが多いです。

Stateは「状態」なのですが、より厳密には「いくつか取りうる状態のうちのひとつ」であることが多いです。
信号機の場合、点滅や矢印を除いた一般的な状態は「青→黄→赤→青…」と遷移します。
このそれぞれの状態を State と考えます。
ですから State と呼ぶ場合、おそらく複数の状態があり、かつそれぞれの状態に遷移するためのルールがあります。

DataSource というのは直訳すれば「データの供給源」です。
エンジンを Power Source(動力源) と呼んだりするのと同じです。
ただこの DataSource に限っては、iOSの場合「UIコントロールに表示すべきデータを与える仕組み」
という意味になっていることが多いです。
たとえばテーブル表示するための UITableView に dataSource というプロパティがあります。
dataSourceを設定しなければ、テーブルビューは何も表示できません。

投稿2018/08/17 08:32

daisuke7

総合スコア1563

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

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

A2wwM

2018/08/18 04:35

daisukeさん 丁寧に教えていただいてありがとうございます。 とてもわかりやすかったです
guest

0

ベストアンサー

クラスとインスタンスの区別はついているものとします。

Model はそのままモデルでしょう。 AuthModel なら認証モデルなので、認証に必要な情報は何か(IDやpasswordなど)と認証処理(どうやってパスワードの一致を確認するか)などをまとめたオブジェクトの定義部分(クラス)です。

State は状態です。実装にもよると思うのですが、 AuthModel が別にあることから予想されるのは AuthState がいくつかの認証ステップを表す Enum である可能性があります。例えば「仮登録中で確認メール送信済み」だとか「メールアドレス確認済み」だとか。

DataSource はそのまま「データ(data)の取得場所(source)」です。おそらく find などのメソッドを定義してあって、例えば特定のユーザーIDでデータベースを検索して、ユーザー情報を取得してくるなどの用途で利用されると思います。

投稿2018/08/17 06:25

mather

総合スコア6753

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

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

0

Model は MVC 用語の Model かと思います。
おおざっぱに言うと

  • ユーザーインターフェースの入力がC(Controller)
  • ユーザーインターフェースの出力がV(View)
  • それ以外のロジック全般をM(Model)

State は状態遷移の状態
おおざっぱにいうとフラグ

でよろしいでしょうか?

投稿2018/08/17 04:37

fu7mu4

総合スコア1088

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

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

A2wwM

2018/08/18 04:36

fu7mu4さん 教えていただいてありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問