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ランキング
-
interface,extend,implementの...
-
JAVAにFTP転送をサポートし...
-
抽象クラスをJUNITでテストする...
-
VB DLLプロジェクトについて
-
Daoクラスはまとめるべきですか
-
【C#】クラスのコンストラクタ...
-
クラス間の値渡しの仕方
-
「ラッパークラス」の存在意義...
-
equals()について
-
エクセルVBAで、条件に一致する...
-
「タイプ初期化子が例外をスロ...
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
Java初級 引数に適用できません
-
複数の変数を宣言する時、同時...
-
ワイルドカード<?>と型パラメー...
-
EXCEL VBAにて動的にCheckBOXを...
-
レコード件数の表示
-
エラーの意味を
-
Webアプリケーションのエラーメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
interface,extend,implementの...
-
「ラッパークラス」の存在意義...
-
(vba)他のアプリケーションの右...
-
抽象クラスをJUNITでテストする...
-
オーバーライドとラッパーの違い
-
C# 「データが失なわれる可能性...
-
【C#】クラスのコンストラクタ...
-
JTextFieldの入力制限
-
c++でのヘッダーファイルの循環...
-
vb.net 自作プロパティの削除に...
-
「継承されたメソッドの可視性...
-
ASP.NETでの共通コードの書き方...
-
Javaのインスタンス化の構文の...
-
Javaで下線
-
メソッドの引数にクラス名を渡す
-
VB DLLプロジェクトについて
-
C#からDLLを呼びたいのですが・...
-
インターフェース型の使い方が...
-
委譲って何ですか?
-
C# 継承の問題で programに示さ...
おすすめ情報
そもそも一つのクラスに記述しないと実装していないクラスってエラーになってしまいますね。
インターフェースを分けるで良いのでしょうか?