質問: 関連する一連のプロパティを独自の構造体/クラスにラップすることは良い習慣ですか? 私の質問は強く型付けされた言語に関するものの、swiftでuserオブジェクトを書くこと。ユーザーは多数のリンク(facebookprofile、instagramprofileなど)を持つことができます。これに関するいくつかの質問。 リンクを独自のオブジェクトでラップすることは良い習慣ですか? struct user { var firstname:string var lastname:string var email:string var links:links } struct links { var facebook:string var instagram:string var twitter:string } それともルーズにすべきですか?技術的にはどちらの方法でも問題ないことはわかっていますが、一般的に、特に読みやすさのために、推奨されるアプローチがあるかどうか疑問に思います。struct user { var firstname: string var lastname: string var email: string var facebooklink: string var twitterlink: string var instagramlink: string } このようなシナリオでは、リンクはコレクション/リストにする必要がありますか?利用可能なリンクオプションの数は決まっており、増えているわけではないので、リストにすべきではないと考えました。私の考えは正しいですか? getusers、getuser、updateuserなどのユーザーオブジェクト内にネットワークメソッドを配置することは良い習慣ですか? これらは主観的である可能性があることは知っていますが、同様の状況でのベストプラクティスを理解しようとしています。任意のポインタをいただければ幸いです。
回答: あなたはどちらかが必要になります 物事のゼロ、 一つのこと、または モノの任意の数。 必要なリンクの数は常に3つであり、それらの名前が永久に何であるかを知っているとあなたの設計が予測していることに私はショックを受けました。私が説教しているのは zero one infinity rule と呼ばれています。最初は明らかではないかもしれませんが、それはあなたのデザインが将来の耐性がないことを私に告げるものです。これらのリンクについて、彼らにとって特別なものがあるとしたら、私は違和感を覚えるでしょう。 twitterリンクでは実行しないfacebookリンクへのアクセス時に、私が異なるいくつかの特別なこと。それは彼らを別のものにするでしょう。しかし、それはこのコードでは示されていません。それが、メールの文字列に悩まされない理由です。私はそれがリンクとは異なる方法で使用されていることを知っています。したがって、これらのリンクを別の方法で使用する理由がわかるまで、私はリンクコレクションの側にいます。