質問: メソッドの公開レベルとか設計とか こんにちは、さっそくですが質問です。 現在、vbでwindowsアプリを作成しています。 vbアプリの経験が0に等しいため、いろいろと調べながら作業を しています。ちなみに、javaは経験があります。 ※意味不明な箇所があったらごめんなさい。 ボタンをクリックすると、textの入力データを取得して、加工する 処理をつくりました。 複雑な処理になったので(1部重複)、form クラス内にprivateメソッドを作成して処理を任せるようにしました。 進めていると、fromが大きくなってきまして、"このままではまずい..処理を行うソースを1つのクラスでまとめて管理しよう"と思い、ユーティリティクラス(?)を作成しました。 そのクラスでの、メソッドの公開レベル(修飾子)でつまってしまいました。 基本的にこのクラスのメソッドは上記のformもしくは、関連したformで しか使用しないためpublicではなく特定の範囲内のみで公開するべきと かんがえました。 いろいろと調べてみたのですが、この考えを実現する方法がわかりません。 (javaでいうところの同一パッケージ内の公開みたいな感じです) friendというものがありましたが、ちょっと違う気がします。 (よくわかっていませんが..) このような場合どういった方法をとればいいのでしょうか? もしくは、そもそも私の考えがまちがいなのでしょうか? (formはでかくなってもしかたがないとか..別のやり方があるなど..) vb設計での暗黙値的設計も今の段階で、分かっておりません。 そのあたりも含め、ご存知の方がおりましたら、よろしくお願いします。
回答: そのクラスを使う際に提供するのはクラスファイルなのでしょうか それともactivex.dllなどのバイナリ提供なのでしょうか 前者であるならpublicもfriendも同じような振る舞いをします 後者ならpublicはアクセスできますがfriendはアクセスできません お使いの環境がvb6なら他に指定の方法がないため範囲を限定した公開といった使用方法は無理だろうと思います あとあるのはimplementsによる継承ですがこれもご質問の用途むきではありません