?????????????????????if???????????????????????????????if??????????д?????????????????????????
??????????????????????????????????????????????????????????????а?????????á?
??????if?????????????????????????飬?????????У????????????????????????????????????????????????if????????????????


 

????if????????
????if????????????????????????if??????????????????????????д???μ?if???
????public void theProblem(boolean someCondition) {
????// SharedState
????if(someCondition) {
????// CodeBlockA
????} else {
????// CodeBlockB
????}
????}
??????????????????????????Щ??????????????δ?????????????????????SharedState?????CodeBlockA??CodeBlockB??????????????δ???????????????????CodeBlock????????????????????????????
????????????CodeBlock????????if???????return???????????????????????????????????????·????
????if????????????????????????????????????if?????domain??????????????????????????£????????????????????????????????????????
?????????????????????????????????????????????????——?????????????С???????????????????????????????????????????ν???????????????????ν?????????????????????????
??????????????????д?????????????????????????仰??
??????????????У??????????????
????if????????????????????????????????????????if????????????????Щ???????????????????????е?if??????????if??????????????????????
???????????????????????????????÷?Χ??
??????????if????????????????????????????????????????if????????????????Σ??????????Ч??
?????????????????Σ????????罻????????????????incoming response?????????????????????????????????????У??????п????gatekeeper?????????????????????????????????ü???????????????????????????
??????1????????????Boolean Params??
?????????? ?з?????????????????boolean??
????public void example() {
????FileUtils.createFile("name.txt"?? "file contents"?? false);
????FileUtils.createFile("name_temp.txt"?? "file contents"?? true);
????}
????public class FileUtils {
????public static void createFile(String name?? String contents?? boolean temporary) {
????if(temporary) {
????// save temp file
????} else {
????// save permanent file
????}
????}
????}
???????? ???????δ?????????????????????????????????????????????????л?????????ж?????????
???????÷?Χ?? ????????????????????????????????????????????????·??????????????????????
????????????? ??????????????????μ?????????if???????
????public void example() {
????FileUtils.createFile("name.txt"?? "file contents");
????FileUtils.createTemporaryFile("name_temp.txt"?? "file contents");
????}
????public class FileUtils {
????public static void createFile(String name?? String contents) {
????// save permanent file
????}
????public static void createTemporaryFile(String name?? String contents) {
????// save temp file
????}
????}
??????2?????????Polymorphism??
?????????? ????????switch???
????public class Bird {
????private enum Species {
????EUROPEAN?? AFRICAN?? NORWEGIAN_BLUE;
????}
????private boolean isNailed;
????private Species type;
????public double getSpeed() {
????switch (type) {
????case EUROPEAN:
????return getBaseSpeed();
????case AFRICAN:
????return getBaseSpeed() - getLoadFactor();
????case NORWEGIAN_BLUE:
????return isNailed ? 0 : getBaseSpeed();
????default:
????return 0;
????}
????}
????private double getLoadFactor() {
????return 3;
????}
????private double getBaseSpeed() {
????return 10;
????}
????}
???????? ??????μ??????????????????????switch?????????????bird?????????????bird???????????????