現在、フォーム上から顧客情報を入力する業務用のフォームアプリケーションを作成しています。やみくもにフォームのイベントハンドラやコード部分に処理をごりごり書いて完成させました。これでは保守性がいまいち高くないような気がします。そこでオブジェクト指向を活用してコードを見直したいと思っています。考えたのが顧客の情報を保持する顧客クラスを作ると言うことです。この顧客クラスを作る際に、顧客クラスのメンバ変数にフォームに入力された顧客名や住所などを格納したいわけですが、この際にメンバ変数へ情報を格納する手法として最も自然なやり方をご教示下さい。顧客クラス側から入力フォームの情報を取得するという方法を考えました。Customer(this);もう一つの方法として、全ての情報を引数で一つずつ渡すと言うことも考えました。textBoxAddress.Text);どういった手法がオブジェクト指向的に自然なのでしょう。他にももっといい方法があれば教えて頂きたいです。顧客クラス側から入力フォームの情報を取得するという方法を考えました。Customer(this);それをしてしまうと、Customer側にもフォームのオブジェクトが必要になってしまうのでクラスとしての独立性が高くないですね。一つの方法として、全ての情報を引数で一つずつ渡すと言うことも考えました。textBoxAddress.Text);顧客の属性が増えると引数も増えるよね、数個なら気にならないだろうけど10個とか多くなったらクラスを使う側がしんどくないかな。textBoxAddress.Text;追記:参考になりそうなサイトを紹介しておきます。人間が把握できるのは7個まで。01:50:38)別に好きなようにすればいいと思いますが。好きな数だけ用意すればいいんじゃないかな。個人的にはどちらの方式もありだと思います。用意するという条件付きで。考えたのが顧客の情報を保持する顧客クラスを作ると言うことです。この際にメンバ変数へ情報を格納する手法として最も自然なやり方をご教示下さい。「私にとって」自然というのしか言えませんが。顧客クラス側から入力フォームの情報を取得するという方法を考えました。Customer(this);これだとGUIと顧客が密接に関連してしまいますよね。GUIの変更のたびにCustomerクラスを確認する必要があります。それは一般的に見て保守性が高いとは言えないように思います。フォームと一体であるならむしろ変更がすくなくなります。一つの方法として、全ての情報を引数で一つずつ渡すと言うことも考えました。textBoxAddress.Text);これは項目が多いときに長くてつらい。増えたときに困ります。ぴさんの言うようにReadOnlyにするなら、これが一番わかりやすい。textBoxAddress.Text;項目変更時にズラっと並んでいるのひとつずつなおして確認する、というような工程はある種の人以外は工程数に比例したミスが生じますよね。必須なフィールドを忘れてしまう場合もあるかも。わかりやすくはあります。今後さらに拡張を考えるなら、「顧客」がデータベースに入ることも念頭にクラス化する必要があるかもしれません。自分の知識・技術力の問題など、いろいろ問題が出てきます。考えるべきことが多すぎて、答えられませんし、そもそも把握しきれません。プログラミング言語は自由度高く作られていますから、いろいろ手があります。それらをすべて検討して、いいところ悪いところを検討し、その中から最善のものを選ぶのはかなりつらい作業です。えるさんの示した内容からでは誰にも最善の手はわかりませんし、それを検証する手もありません。オブジェクト指向的に一般的なのも、状況次第です。処理をごりごり書いて完成させました。やって、完成したわけですね。完成ということは、動いていると。これでは保守性がいまいち高くないような気がします。そこでオブジェクト指向を活用してコードを見直したいと思っています。いますぐにコードを治す必要に迫られているわけではないのですね。いうことは、将来の発生するかわからない保守を念頭に、修正をいれようとしているわけですね。「何もしない」をオススメします。保守が発生した時に、保守する上で障害となる、なった部分を考え、それが改善されるように少しずつ治しましょう。今完成しているなら、もう保守のことを考えるには遅すぎます。保守のことを考えずに作ったのであれば、保守の経験が足りません。私の持つ一番大切な保守の経験は「保守の事を考えずに作ると大変なことになる」というものです。保守の経験が足りないのですから、保守性を考慮して変更してもうまくいくとは思えません。経験を積んでも大切さがわからないのであれば、それは稀有な才能があることになります。その場合も保守性のために手を入れる必要はありません。私が最初にオブジェクト指向言語をひねくって、課長から「オブジェクト指向って、どう?」と尋ねられたとき、こう答えました。完成して、保守の段階にあるなら、もう遅いかと。これから保守のために手を入れるなかで、「こう作っておけば、保守しやすかった」を学んで下さい。この経験を伝えることは、ウェブを通すと、非常に困難だと思います。23:02:32)みなさんたくさんのアドバイスやコメントを頂きありがとうございました。自分にとって本当に有益な情報が得られましたし、納得も出来ました。自分の勉強のためにも、現在完成させたコードをバックアップを取った上でクラス化やコードのスリム化などに取り組もうと思います。今の内にコードの保守性が高い状態に保っておきたいのです。急いで作ったというのもありますが、最初の設計をしっかりしていなかったのが原因です。次からの開発ではこの経験を生かしてコーディングしたいと思います。本当に沢山のご回答ありがとうございました。顧客クラス側から入力フォームの情報を取得するという方法を考えました。入力を基に顧客情報を生成するってのはいかがでしょ。今の内にコードの保守性が高い状態に保っておきたいのです。(二重引用符追加)それがすでに「保守の段階」なんですよ。