mobileCall というクラスを実装しました。このクラスからいくつかのオブジェクトを作成し、このオブジェクトの String 変数に、特定の人物に対する複数の mobileCalls を持つ XML から取得した値を設定します。この人が発信したすべての通話をグループ化してカウントする必要があります (つまり、国内通話: 11 分; 国際通話: 15 分; データ: 20 MB)
そのため、クラス内にいくつかのパブリック メソッドを実装して、呼び出しの型をチェックして true または false を返すようにしました。メインクラスでは、これらのメソッドを呼び出して、特定のカウンターをカウントアップする基準を満たしているかどうかを確認しました。
専門家が私のコードを見て、これは良い習慣ではなく、OOP はそのような「あなたは何ですか」メソッドを排除するように設計されていると言いました。そして、この動作を実装するためのより良い方法があること。OOP とカプセル化を読み込もうとしましたが、それを行うためのより良い方法を見つけることができませんでした。彼には一理あると思います。
コード例
public class MobileCall {
String callType;
String callDuration;
String callAmount;
String callerID;
String calleID;
....
public boolean isNational(){
if (callType.compareTo("National")==0)
return true;
else
return false;
}
public boolean isInternational(){
if (callType.compareTo("international")==0)
return true;
else
return false;
}
...
}
In Main Method
int nationalCounter;
int internationalCounter;
MobileCall mobileCall = new MobileCall();
if(mobileCall.isNational())
nationalCounter = nationalCounter + mobileCall.getCallDuration();
else if (mobileCall.isInternational())
internationalCounter = internationalCounter + mobileCall.getDuration();
....