Javaのような他の言語を学んでいたときには、すべてのサンプルコードで常にフィールドprivate
をマークする必要があることがわかりました。内部の処理を行うメソッドには、private
またはprotected
とマークされています。Swiftのカプセル化は他のオブジェクト指向言語のように重要です
しかし、Swiftに関しては、たくさんのチュートリアル(raywenderlich.comなど)のサンプルコードでは、まったくprivate
とマークすることがあります。彼らはそれをそのままinternal
のままにします(修飾子は一切加えません)。
対照的に、すべてのアンドロイドチュートリアルでは、フィールドの一部をprivate
とマークし、ゲッターやセッターを提供していません。
例えば、私はしばらく前に、この検索バーのチュートリアルをお読みください。
https://www.raywenderlich.com/113772/uisearchcontroller-tutorial
私はそれを読んでいた、私が考えていた。「なぜ、あなたはこのprivate
をマークしていませんでした?」私が意味する
let searchController = UISearchController(searchResultsController: nil)
他のクラスが私 VCの検索コントローラにアクセスするために、それは意味がありません。それは鉱山です!
質問:いないすべてのチュートリアルがプライベートプロパティが含まれているサンプルコードを提供する場合
はなぜ、ほとんどないのですか?それはiOSがより安全なものか何かですか?プロダクションコードではプライベートなものとしてマークする必要がありますか?
私はこれも意見に基づいていないことを望みます。 Javaでは、フィールドを公開することはありません。それは単なる事実です。フィールドを公開するべきではありません。ですから、意見に基づいて閉じてはいけません。そうではありません。
一般に、「内部」でないものはすべて「プライベート」または「パブリック」とマークする必要があります。これは、他の言語と同じ理由で、コンパイラを使用してアプリのデザイン/オブジェクトグラフを実行するのに役立ちます。同様にクラスの 'final'修飾子についても同様です。私の個人的な見解では、チュートリアルでもこれを行うべきですが、チュートリアルでは、実際にはサンプルコードについての視点に立っているのかどうかということです。だから彼らの "意見"とスタイル、言い換えれば。 –
回答は意見ではなく、事実に基づいているため、私は主に意見ベースでこの質問を終了するよう投票しています。 – JAL