模板方法模式
利用创建抽象类,比如Android中的BaseActivity,可以将initView()
,initData()
放在onCreate()
中;
BaseActivity;
public abstract class BaseMvpActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView();
initView();
initData();
}
protected abstract void initData();
protected abstract void initView();
protected abstract void setContentView();
}
使用,继承自BaseActivity,实现相应抽象方法。
状态模式
就是用不同多态代替if-else判断
工人心情
public interface State {
void doWork();
}
公司,具有找人,干活功能
public class Company {
private State state;
public void doWork() {
state.doWork();
}
public void setWorker(State state) {
this.state = state;
}
}
工人1不加班
```java
public class Worker implements State {
@Override
public void doWork() {
System.out.println("辞职了干不了..");
}
}
工人2加班
public class Worker2 implements State {
@Override
public void doWork() {
System.out.println("包饭就干..");
}
}
public class MyClass {
public static void main(String[] args) {
Company company = new Company();
Worker worker = new Worker();
company.setWorker(worker);
company.doWork();
}
}