
javaのクラスの分け方について質問です。
APIの内部用と外部用でクラスを分けたいのですがインターフェースとしては一つにまとめようと思ってます。
それでimplementsする際に内部と外部で分けようと考えてますが、この分け方は一般的にはアリなのでしょうか。
インターフェースとして
public interface Service {
外部で使うAPI
Response test1(String prm );
内部で使うAPI
Response test2(String prm );
}
外部用クラス
public class Gaibu implements Service
Overrideしてtest1を実装
内部用クラス
public class Naibu implements Service
Overrideしてtest2を実装
No.2ベストアンサー
- 回答日時:
> ファクトリーの構造がいまいちわからなくて
GoF デザインパターンでいうファクトリの説明は、少々難解です。
ここでは「外部の人が内部構造を知らずに使える」だけを目的にするので、単純に以下のような形で如何でしょうか。
public class APIのファクトリ {
_ public static 外部型 create() {
_ _ return new APIの実装クラス();
_ }
}
// 内部向けメソッドも見えてしまうので NG
APIの実装クラス api = new APIの実装クラス();
// 外部向けメソッドしか(たぶん)見えないので OK
外部型 api = APIのファクトリ.create();
No.1
- 回答日時:
インターフェースに不要部分があるならば、そもそも設計が間違っています。
用途ごとにインターフェースを用意しましょう。interface 外部型 { ... }
interface 内部型 { ... }
実装は別でも一つでも良いです
class 外部向け implements 外部型 {}
class 内部向け implements 内部型 {}
class 内外共通 implements 外部型, 内部型 {}
インターフェース型でインスタンス生成するファクトリも用意しましょう。
class ファクトリ { static 外部型 create() { return new 内外共通(); } }
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Java java final 1 2022/06/10 22:49
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- Java リレーションエンティティクラスとは何ですか? 2 2023/02/10 00:02
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- 友達・仲間 高2女子です。クラス替えで友達と一人だけ違うクラスになってしまい、ぼっちです。 クラスは陽キャ系の人 4 2022/04/14 00:12
- JavaScript [再掲]指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードについて 1 2023/05/10 15:09
- 高校 強豪校の運動部(高校) 3 2022/08/24 11:54
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WinInet Classを用いてSSL接続方法
-
APIリファレンスはどこにありま...
-
publicフィールドの使いどき
-
スーパークラスとサブクラスに...
-
[C@3331394などの文字列
-
携帯IApplicationのsuper
-
外部のクラスからコンテナをイ...
-
抽象クラスが継承されているか...
-
c# この高速化の方法あり? 2
-
クラスの直列化に関して
-
JAVAでゲームを作ろうとしてい...
-
Java の画像作成
-
模範解答を・・・
-
Integer.byteValue
-
VC++ ATLコントロールのインス...
-
スクロールバーについて
-
javaのASPを読んでも意味がわか...
-
抽象クラスをJUNITでテストする...
-
シンボルの解釈処理エラー
-
C# 「データが失なわれる可能性...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C# 「データが失なわれる可能性...
-
「継承されたメソッドの可視性...
-
(vba)他のアプリケーションの右...
-
【C#】クラスのコンストラクタ...
-
VB DLLプロジェクトについて
-
メソッドの引数にクラス名を渡す
-
「ラッパークラス」の存在意義...
-
interface,extend,implementの...
-
c++でのヘッダーファイルの循環...
-
このエラーメッセージの意味を...
-
委譲って何ですか?
-
ゲッターを使わないで変数にア...
-
Javaのインスタンス化の構文の...
-
ファイルパスが取得出来ない(P...
-
ASP.NETでの共通コードの書き方...
-
Commons-Discovery.jarとは?
-
デバッグ時に「Source not found」
-
JTextFieldの入力制限
-
JavaのimplementsをC言語で例え...
-
オーバーライドとラッパーの違い
おすすめ情報
そもそも一つのクラスに記述しないと実装していないクラスってエラーになってしまいますね。
インターフェースを分けるで良いのでしょうか?