@@ -36,41 +33,25 @@
*/
public class FactoryActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_simple_factory)
- Button btSimpleFactory;
- @BindView(R.id.bt_factory_method)
- Button btFactoryMethod;
- @BindView(R.id.bt_static_factory)
- Button btStaticFactory;
- @BindView(R.id.bt_abstract_factory)
- Button btAbstractFactory;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_roujia_mo_store)
- LinearLayout activityRoujiaMoStore;
- @BindView(R.id.tv_define2)
- TextView tvDefine2;
- @BindView(R.id.tv_define3)
- TextView tvDefine3;
+ private ActivityRoujiaMoStoreBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_roujia_mo_store);
- ButterKnife.bind(this);
+ binding = DataBindingUtil.setContentView(this, R.layout.activity_roujia_mo_store);
setTitle("工厂模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.JDGC_FACTORY_DEFINE));
- tvDefine2.setText(EMTagHandler.fromHtml(AppConstant.GCFF_FACTORY_DEFINE));
- tvDefine3.setText(EMTagHandler.fromHtml(AppConstant.CXGC_FACTORY_DEFINE));
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.JDGC_FACTORY_DEFINE));
+ binding.tvDefine2.setText(EMTagHandler.fromHtml(AppConstant.GCFF_FACTORY_DEFINE));
+ binding.tvDefine3.setText(EMTagHandler.fromHtml(AppConstant.CXGC_FACTORY_DEFINE));
initListener();
}
private void initListener() {
- btStaticFactory.setOnClickListener(this);
- btSimpleFactory.setOnClickListener(this);
- btFactoryMethod.setOnClickListener(this);
- btAbstractFactory.setOnClickListener(this);
+ binding.btStaticFactory.setOnClickListener(this);
+ binding.btSimpleFactory.setOnClickListener(this);
+ binding.btFactoryMethod.setOnClickListener(this);
+ binding.btAbstractFactory.setOnClickListener(this);
}
@Override
diff --git a/app/src/main/java/com/example/jingbin/designpattern/flyweight/FlyweightActivity.java b/app/src/main/java/com/example/jingbin/designpattern/flyweight/FlyweightActivity.java
index ba0dc85..11fbfd5 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/flyweight/FlyweightActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/flyweight/FlyweightActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.flyweight;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import com.example.jingbin.designpattern.R;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/interpreter/InterpreterActivity.java b/app/src/main/java/com/example/jingbin/designpattern/interpreter/InterpreterActivity.java
index cceff56..99c191b 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/interpreter/InterpreterActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/interpreter/InterpreterActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.interpreter;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/iterator/IteratorActivity.java b/app/src/main/java/com/example/jingbin/designpattern/iterator/IteratorActivity.java
index d04c860..654a89f 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/iterator/IteratorActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/iterator/IteratorActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.iterator;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/mediator/MediatorActivity.java b/app/src/main/java/com/example/jingbin/designpattern/mediator/MediatorActivity.java
index 773c8c1..a54aa78 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/mediator/MediatorActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/mediator/MediatorActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.mediator;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import com.example.jingbin.designpattern.R;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/memento/MementoActivity.java b/app/src/main/java/com/example/jingbin/designpattern/memento/MementoActivity.java
index d4a9f2f..6243645 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/memento/MementoActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/memento/MementoActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.memento;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/observer/ObserverActivity.java b/app/src/main/java/com/example/jingbin/designpattern/observer/ObserverActivity.java
index ee5d8fa..77abcb2 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/observer/ObserverActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/observer/ObserverActivity.java
@@ -1,15 +1,15 @@
package com.example.jingbin.designpattern.observer;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
+import com.example.jingbin.designpattern.databinding.ActivityObserverBinding;
import com.example.jingbin.designpattern.observer.classs.ObjectFor3D;
import com.example.jingbin.designpattern.observer.classs.ObserverUser1;
import com.example.jingbin.designpattern.observer.classs.ObserverUser2;
@@ -17,9 +17,6 @@
import com.example.jingbin.designpattern.observer.javautil.SubjectFor3d;
import com.example.jingbin.designpattern.observer.javautil.SubjectForSSQ;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* 可以看出,使用Java内置的类实现观察者模式,代码非常简洁,
* 对了addObserver,removeObserver,notifyObservers都已经为我们实现了,
@@ -34,17 +31,6 @@
*/
public class ObserverActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.bt_observer)
- Button btObserver;
- @BindView(R.id.bt_myself)
- Button btMyself;
- @BindView(R.id.bt_system)
- Button btSystem;
- @BindView(R.id.activity_observer)
- LinearLayout activityObserver;
-
private ObjectFor3D objectFor3D;
private ObserverUser1 observerUser1;
private ObserverUser2 observerUser2;
@@ -52,13 +38,12 @@ public class ObserverActivity extends AppCompatActivity implements View.OnClickL
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_observer);
- ButterKnife.bind(this);
+ ActivityObserverBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_observer);
setTitle("观察者模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.OBSERVER_DEFINE));
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.OBSERVER_DEFINE));
- btMyself.setOnClickListener(this);
- btSystem.setOnClickListener(this);
+ binding.btMyself.setOnClickListener(this);
+ binding.btSystem.setOnClickListener(this);
}
diff --git a/app/src/main/java/com/example/jingbin/designpattern/prototype/PrototypeActivity.java b/app/src/main/java/com/example/jingbin/designpattern/prototype/PrototypeActivity.java
index 81d74b4..c4e4b34 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/prototype/PrototypeActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/prototype/PrototypeActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.prototype;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/proxy/ProxyActivity.java b/app/src/main/java/com/example/jingbin/designpattern/proxy/ProxyActivity.java
index a36cf40..03aaaed 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/proxy/ProxyActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/proxy/ProxyActivity.java
@@ -1,10 +1,11 @@
package com.example.jingbin.designpattern.proxy;
-import android.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
+
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/singleton/SingletonActivity.java b/app/src/main/java/com/example/jingbin/designpattern/singleton/SingletonActivity.java
index 49efd3d..ccbaba6 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/singleton/SingletonActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/singleton/SingletonActivity.java
@@ -1,50 +1,33 @@
package com.example.jingbin.designpattern.singleton;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
+import com.example.jingbin.designpattern.databinding.ActivitySingletonBinding;
import com.example.jingbin.designpattern.singleton.ehan.SingletonEHan;
import com.example.jingbin.designpattern.singleton.enums.SingletonEnum;
import com.example.jingbin.designpattern.singleton.inclass.SingletonIn;
import com.example.jingbin.designpattern.singleton.lanhan.SingletonLanHan;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
public class SingletonActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_ehan)
- Button btEhan;
- @BindView(R.id.bt_lanhan)
- Button btLanhan;
- @BindView(R.id.bt_inclass)
- Button btInclass;
- @BindView(R.id.bt_enum)
- Button btEnum;
- @BindView(R.id.activity_singleton)
- LinearLayout activitySingleton;
- @BindView(R.id.tv_define)
- TextView tvDefine;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_singleton);
- ButterKnife.bind(this);
+ ActivitySingletonBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_singleton);
setTitle("单例设计模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.SINGLETON_DEFINE));
- btEhan.setOnClickListener(this);
- btLanhan.setOnClickListener(this);
- btInclass.setOnClickListener(this);
- btEnum.setOnClickListener(this);
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.SINGLETON_DEFINE));
+ binding.btEhan.setOnClickListener(this);
+ binding.btLanhan.setOnClickListener(this);
+ binding.btInclass.setOnClickListener(this);
+ binding.btEnum.setOnClickListener(this);
}
@Override
diff --git a/app/src/main/java/com/example/jingbin/designpattern/state/StateActivity.java b/app/src/main/java/com/example/jingbin/designpattern/state/StateActivity.java
index 252fad0..7903e9e 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/state/StateActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/state/StateActivity.java
@@ -1,22 +1,19 @@
package com.example.jingbin.designpattern.state;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
+import com.example.jingbin.designpattern.databinding.ActivityStateBinding;
import com.example.jingbin.designpattern.state.better.VendingMachineBetter;
import com.example.jingbin.designpattern.state.old.VendingMachine;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* 状态模式
* 定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。
@@ -24,30 +21,18 @@
*/
public class StateActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_facade)
- Button btFacade;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_state)
- LinearLayout activityState;
- @BindView(R.id.bt_facade_old)
- Button btFacadeOld;
- @BindView(R.id.bt_facade_better)
- Button btFacadeBetter;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_state);
- ButterKnife.bind(this);
+ ActivityStateBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_state);
setTitle("状态模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.STATE_DEFINE));
- btFacadeOld.setText("最初实现待改进");
- btFacadeBetter.setText("改进过的售货机");
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.STATE_DEFINE));
+ binding.btFacadeOld.setText("最初实现待改进");
+ binding.btFacadeBetter.setText("改进过的售货机");
- btFacadeOld.setOnClickListener(this);
- btFacadeBetter.setOnClickListener(this);
+ binding.btFacadeOld.setOnClickListener(this);
+ binding.btFacadeBetter.setOnClickListener(this);
}
@Override
@@ -73,7 +58,7 @@ public void onClick(View v) {
vendingMachine.backMoney();
vendingMachine.turnCrank();
break;
-
+
case R.id.bt_facade_better:// 改进过的售货机
VendingMachineBetter machineBetter = new VendingMachineBetter(4);
// machineBetter.dispense();无法直接操作 出商品(出商品是自动的);
diff --git a/app/src/main/java/com/example/jingbin/designpattern/strategy/StrategyActivity.java b/app/src/main/java/com/example/jingbin/designpattern/strategy/StrategyActivity.java
index c3bddbe..02e2564 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/strategy/StrategyActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/strategy/StrategyActivity.java
@@ -1,51 +1,38 @@
package com.example.jingbin.designpattern.strategy;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
+import com.example.jingbin.designpattern.databinding.ActivityStategyBinding;
import com.example.jingbin.designpattern.strategy.better.AttackXL;
import com.example.jingbin.designpattern.strategy.better.DefendTMS;
import com.example.jingbin.designpattern.strategy.better.DisplayYZ;
import com.example.jingbin.designpattern.strategy.better.RoleA;
import com.example.jingbin.designpattern.strategy.better.RunJCTQ;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* 策略模式(Strategy Pattern):定义了算法族,分别封装起来,
* 让它们之间可相互替换,此模式让算法的变化独立于使用算法的客户。
*/
public class StrategyActivity extends AppCompatActivity {
- @BindView(R.id.bt_strategy)
- Button btStrategy;
- @BindView(R.id.activity_stategy)
- LinearLayout activityStategy;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.bt_strategy_text)
- Button btStrategyText;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_stategy);
- ButterKnife.bind(this);
+ ActivityStategyBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_stategy);
setTitle("策略模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.STRATEGY_DEFINE));
- btStrategyText.setText("创建角色A,并设定样子,攻击,逃跑,防御");
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.STRATEGY_DEFINE));
+ binding.btStrategyText.setText("创建角色A,并设定样子,攻击,逃跑,防御");
- btStrategyText.setOnClickListener(new View.OnClickListener() {
+ binding.btStrategyText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RoleA roleA = new RoleA("---A");
diff --git a/app/src/main/java/com/example/jingbin/designpattern/templatemethod/TemplateMethodActivity.java b/app/src/main/java/com/example/jingbin/designpattern/templatemethod/TemplateMethodActivity.java
index 5a3add5..f35210d 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/templatemethod/TemplateMethodActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/templatemethod/TemplateMethodActivity.java
@@ -1,24 +1,21 @@
package com.example.jingbin.designpattern.templatemethod;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
+
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.databinding.DataBindingUtil;
import com.example.jingbin.designpattern.R;
import com.example.jingbin.designpattern.app.AppConstant;
import com.example.jingbin.designpattern.app.EMTagHandler;
+import com.example.jingbin.designpattern.databinding.ActivityTemplateMethodBinding;
import com.example.jingbin.designpattern.templatemethod.worker.CTOWorker;
import com.example.jingbin.designpattern.templatemethod.worker.HRWorker;
import com.example.jingbin.designpattern.templatemethod.worker.ITWorker;
import com.example.jingbin.designpattern.templatemethod.worker.OtherWorker;
import com.example.jingbin.designpattern.templatemethod.worker.QAWorker;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* 模版方法模式 展现程序员的一天
* 定义:定义了一个算法的骨架,而将一些步骤延迟到子类中,模版方法使得子类可以在不改变算法结构的情况下,重新定义算法的步骤。
@@ -29,29 +26,17 @@
*/
public class TemplateMethodActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_template_method)
- Button btTemplateMethod;
- @BindView(R.id.bt_template_method_text)
- Button btTemplateMethodText;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_template_method)
- LinearLayout activityTemplateMethod;
- @BindView(R.id.bt_template_method_text2)
- Button btTemplateMethodText2;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_template_method);
- ButterKnife.bind(this);
+ ActivityTemplateMethodBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_template_method);
setTitle("模板方法模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.TEMPLATE_METHOD_DEFINE));
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.TEMPLATE_METHOD_DEFINE));
- btTemplateMethodText.setText("查看所有人员的工作情况");
- btTemplateMethodText2.setText("查看程序猿离开公司的时间");
- btTemplateMethodText.setOnClickListener(this);
- btTemplateMethodText2.setOnClickListener(this);
+ binding.btTemplateMethodText.setText("查看所有人员的工作情况");
+ binding.btTemplateMethodText2.setText("查看程序猿离开公司的时间");
+ binding.btTemplateMethodText.setOnClickListener(this);
+ binding.btTemplateMethodText2.setOnClickListener(this);
}
@Override
diff --git a/app/src/main/java/com/example/jingbin/designpattern/visitor/VisitorActivity.java b/app/src/main/java/com/example/jingbin/designpattern/visitor/VisitorActivity.java
index f03280d..8acc68f 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/visitor/VisitorActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/visitor/VisitorActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.visitor;
-import android.databinding.DataBindingUtil;
+import androidx.databinding.DataBindingUtil;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
+import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import com.example.jingbin.designpattern.R;
diff --git a/app/src/main/res/layout/activity_adapter.xml b/app/src/main/res/layout/activity_adapter.xml
index 1a106fe..41207a9 100644
--- a/app/src/main/res/layout/activity_adapter.xml
+++ b/app/src/main/res/layout/activity_adapter.xml
@@ -1,49 +1,51 @@
-