勉強会で使える設計アンチパターン募集
はじめに
勉強会でアンチパターンとその改善を扱おうかと思いまして、
皆さんの周りのくそコードアンチパターンを教えていただきたいです。
サンプル
以下の例をご確認ください。
class A {
private final B b;
private final BState bState;
A(B b, BState bState) { this.b = b; this.bState = bState; }
void execute() {
bState.setFailure(false);
bState.setProcessing(true);
b.execute();
}
}
class BState {
private boolean processing;
private boolean failure;
void setProcessing(boolean processing) {this.processing = processing;}
void setFailure(boolean failure) {this.failure = failure;}
boolean isProcessing() { return processing;}
boolean isFailure() { return failure;}
}
interface B {
void execute();
}
class BImpl implements B {
private final BState state;
BImpl(BState state) { this.state = state; }
@Override
public void execute() {
try { /* 処理 */ }
catch (Exception e) {
state.setFailure(true);
} finally {
state.setProcessing(false);
}
}
}
上記の様に
- コンパイルは通る
- 動作的には正しい
- 設計的に問題があり保守性等に問題がある
というコード例を挙げていただければと思います。