この質問にはObjective-Cを使用していますが、これは実際には言語固有ではありません。
User クラスに次のメソッドがあります。
+(BOOL)canPerform:(NSString *)string
withCompletion:(void(^)(BOOL success,NSError *error))block;
私のViewControllerで
-(void)performTask{
if([User canPerform:@"My String" withCompletion:^(BOOL success, NSError *error) {
if (success) {
NSLog(@"Task success!");
}
else{
NSLog(@"Task Failed with error : %@,error.localizedDescription");
}
}])
{
NSLog(@"Can perform task");
}
else{
NSLog(@"Can not perform task");
}
}
私が実行しているタスクについて言及する必要はありません。それは私の質問ではありません。
私の質問は次のとおりです。
これは良いプログラミングの実践ですか?if ステートメントの条件として、ブロックを受け入れる BOOL メソッドを使用しますか?
このメソッド
[User canPerform]
は 2 つのことを行います。まず、この特定のタスクを実行できるかどうかを確認し、実行できる場合はそのタスクを実行します。しかし、メソッド名はこれを反映していません。メソッド名はcanPeform
. 私は使用できifCanThenPeformThisTask
ましたが、それは奇妙に聞こえ、BOOL メソッドのようには感じません。このメソッドに名前を付けるための最良のアプローチは何ですか?