(R.layout.item_main, Arrays.asList(patterns)) {
@Override
protected void bindView(BaseByViewHolder holder, String title, int position) {
diff --git a/app/src/main/java/com/example/jingbin/designpattern/adapter/AdapterActivity.java b/app/src/main/java/com/example/jingbin/designpattern/adapter/AdapterActivity.java
index a31db3a..c59bac0 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/adapter/AdapterActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/adapter/AdapterActivity.java
@@ -1,18 +1,15 @@
package com.example.jingbin.designpattern.adapter;
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 butterknife.BindView;
-import butterknife.ButterKnife;
+import com.example.jingbin.designpattern.databinding.ActivityAdapterBinding;
/**
* 适配器模式:
@@ -22,25 +19,15 @@
*/
public class AdapterActivity extends AppCompatActivity {
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_adapter)
- LinearLayout activityAdapter;
- @BindView(R.id.by_adapter)
- Button byAdapter;
- @BindView(R.id.bt_adapter_text)
- Button btAdapterText;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_adapter);
- ButterKnife.bind(this);
+ ActivityAdapterBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_adapter);
setTitle("适配器模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.ADAPTER_DEFINE));
- btAdapterText.setText("将220V家用电转换为5V");
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.ADAPTER_DEFINE));
+ binding.btAdapterText.setText("将220V家用电转换为5V");
- btAdapterText.setOnClickListener(new View.OnClickListener() {
+ binding.btAdapterText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
diff --git a/app/src/main/java/com/example/jingbin/designpattern/bridge/BridgeActivity.java b/app/src/main/java/com/example/jingbin/designpattern/bridge/BridgeActivity.java
index 47bc79c..188e4e6 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/bridge/BridgeActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/bridge/BridgeActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.bridge;
-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/builder/BuilderActivity.java b/app/src/main/java/com/example/jingbin/designpattern/builder/BuilderActivity.java
index a8132fa..472cd4d 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/builder/BuilderActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/builder/BuilderActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.builder;
-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/chainofresponsibility/ChainOfResponsibilityActivity.java b/app/src/main/java/com/example/jingbin/designpattern/chainofresponsibility/ChainOfResponsibilityActivity.java
index 95f29b6..33d01a8 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/chainofresponsibility/ChainOfResponsibilityActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/chainofresponsibility/ChainOfResponsibilityActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.chainofresponsibility;
-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/command/CommandActivity.java b/app/src/main/java/com/example/jingbin/designpattern/command/CommandActivity.java
index d69f023..95378b1 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/command/CommandActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/command/CommandActivity.java
@@ -1,18 +1,15 @@
package com.example.jingbin.designpattern.command;
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 butterknife.BindView;
-import butterknife.ButterKnife;
+import com.example.jingbin.designpattern.databinding.ActivityCommandBinding;
/**
* 命令模式:
@@ -25,55 +22,30 @@
*/
public class CommandActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_command)
- LinearLayout activityCommand;
- @BindView(R.id.bt_command)
- Button btCommand;
- @BindView(R.id.bt_zero)
- Button btZero;
- @BindView(R.id.bt_three)
- Button btThree;
- @BindView(R.id.bt_six)
- Button btSix;
- @BindView(R.id.bt_one)
- Button btOne;
- @BindView(R.id.bt_four)
- Button btFour;
- @BindView(R.id.bt_seven)
- Button btSeven;
- @BindView(R.id.bt_two)
- Button btTwo;
- @BindView(R.id.bt_five)
- Button btFive;
- @BindView(R.id.bt_no)
- Button btNo;
-
private ControlPanel controlPanel;
+ private ActivityCommandBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_command);
- ButterKnife.bind(this);
+ binding = DataBindingUtil.setContentView(this, R.layout.activity_command);
setTitle("命令模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.COMMAND_DEFINE));
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.COMMAND_DEFINE));
setCommands();
initListener();
}
private void initListener() {
- btZero.setOnClickListener(this);
- btOne.setOnClickListener(this);
- btTwo.setOnClickListener(this);
- btThree.setOnClickListener(this);
- btFour.setOnClickListener(this);
- btFive.setOnClickListener(this);
- btSix.setOnClickListener(this);
- btSeven.setOnClickListener(this);
- btNo.setOnClickListener(this);
+ binding.btZero.setOnClickListener(this);
+ binding.btOne.setOnClickListener(this);
+ binding.btTwo.setOnClickListener(this);
+ binding.btThree.setOnClickListener(this);
+ binding.btFour.setOnClickListener(this);
+ binding.btFive.setOnClickListener(this);
+ binding.btSix.setOnClickListener(this);
+ binding.btSeven.setOnClickListener(this);
+ binding.btNo.setOnClickListener(this);
}
private void setCommands() {
diff --git a/app/src/main/java/com/example/jingbin/designpattern/composite/CompositeActivity.java b/app/src/main/java/com/example/jingbin/designpattern/composite/CompositeActivity.java
index bce75c5..feb990e 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/composite/CompositeActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/composite/CompositeActivity.java
@@ -1,8 +1,8 @@
package com.example.jingbin.designpattern.composite;
-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/decorator/DecoratorActivity.java b/app/src/main/java/com/example/jingbin/designpattern/decorator/DecoratorActivity.java
index 0d67dee..f312096 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/decorator/DecoratorActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/decorator/DecoratorActivity.java
@@ -1,24 +1,21 @@
package com.example.jingbin.designpattern.decorator;
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.ActivityDecoratorBinding;
import com.example.jingbin.designpattern.decorator.equip.RingEquip;
import com.example.jingbin.designpattern.decorator.equip.ShoeEquip;
-import com.example.jingbin.designpattern.decorator.gem.BlueGemDecotator;
-import com.example.jingbin.designpattern.decorator.gem.RedGemDecotator;
-import com.example.jingbin.designpattern.decorator.gem.YellowGemDecotator;
-import com.example.jingbin.designpattern.app.EMTagHandler;
-
-import butterknife.BindView;
-import butterknife.ButterKnife;
+import com.example.jingbin.designpattern.decorator.gem.BlueGemDecorator;
+import com.example.jingbin.designpattern.decorator.gem.RedGemDecorator;
+import com.example.jingbin.designpattern.decorator.gem.YellowGemDecorator;
/**
* 装饰者模式:
@@ -33,31 +30,19 @@
*/
public class DecoratorActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_decorator)
- Button btDecorator;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.activity_decorator)
- LinearLayout activityDecorator;
- @BindView(R.id.bt_demo1)
- Button btDemo1;
- @BindView(R.id.bt_demo2)
- Button btDemo2;
-
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_decorator);
- ButterKnife.bind(this);
+ ActivityDecoratorBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_decorator);
setTitle("装饰者模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.DECORATOR_DEFINE));
- btDemo1.setText("一个镶嵌2颗红宝石,1颗蓝宝石的靴子");
- btDemo2.setText("一个镶嵌1颗红宝石,1颗蓝宝石,1颗黄宝石的戒指");
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.DECORATOR_DEFINE));
+ binding.btDemo1.setText("一个镶嵌2颗红宝石,1颗蓝宝石的靴子");
+ binding.btDemo2.setText("一个镶嵌1颗红宝石,1颗蓝宝石,1颗黄宝石的戒指");
- btDecorator.setOnClickListener(this);
- btDemo1.setOnClickListener(this);
- btDemo2.setOnClickListener(this);
+ binding.btDecorator.setOnClickListener(this);
+ binding.btDemo1.setOnClickListener(this);
+ binding.btDemo2.setOnClickListener(this);
}
@Override
@@ -69,16 +54,16 @@ public void onClick(View v) {
case R.id.bt_demo1:
Log.e("---", "一个镶嵌2颗红宝石,1颗蓝宝石的靴子: ");
- IEquip iEquip = new RedGemDecotator(new RedGemDecotator(new BlueGemDecotator(new ShoeEquip())));
+ IEquip iEquip = new RedGemDecorator(new RedGemDecorator(new BlueGemDecorator(new ShoeEquip())));
Log.e("---", "攻击力:" + iEquip.caculateAttack());
Log.e("---", "描述语:" + iEquip.description());
break;
case R.id.bt_demo2:
Log.e("---", "一个镶嵌1颗红宝石,1颗蓝宝石,1颗黄宝石的戒指: ");
- RedGemDecotator redGemDecotator = new RedGemDecotator(new BlueGemDecotator(new YellowGemDecotator(new RingEquip())));
- Log.e("---", "攻击力:" + redGemDecotator.caculateAttack());
- Log.e("---", "描述语:" + redGemDecotator.description());
+ RedGemDecorator redGemDecorator = new RedGemDecorator(new BlueGemDecorator(new YellowGemDecorator(new RingEquip())));
+ Log.e("---", "攻击力:" + redGemDecorator.caculateAttack());
+ Log.e("---", "描述语:" + redGemDecorator.description());
break;
default:
break;
diff --git a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecotator.java b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecorator.java
similarity index 85%
rename from app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecotator.java
rename to app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecorator.java
index 443d177..b198e0a 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecotator.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/BlueGemDecorator.java
@@ -9,11 +9,11 @@
* 这与武器等不同,它是可以累加的,而武器不能
*/
-public class BlueGemDecotator implements IEuipDecotator {
+public class BlueGemDecorator implements IEuipDecorator {
private IEquip iEquip;
- public BlueGemDecotator(IEquip iEquip) {
+ public BlueGemDecorator(IEquip iEquip) {
this.iEquip = iEquip;
}
diff --git a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecotator.java b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecorator.java
similarity index 79%
rename from app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecotator.java
rename to app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecorator.java
index 10bf4f1..c472e02 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecotator.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/IEuipDecorator.java
@@ -7,6 +7,6 @@
* 装饰品的接口
*/
-public interface IEuipDecotator extends IEquip {
+public interface IEuipDecorator extends IEquip {
}
diff --git a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecotator.java b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecorator.java
similarity index 85%
rename from app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecotator.java
rename to app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecorator.java
index e0d33fb..9cd33ac 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecotator.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/RedGemDecorator.java
@@ -9,11 +9,11 @@
* 这与武器等不同,它是可以累加的,而武器不能
*/
-public class RedGemDecotator implements IEuipDecotator {
+public class RedGemDecorator implements IEuipDecorator {
private IEquip iEquip;
- public RedGemDecotator(IEquip iEquip) {
+ public RedGemDecorator(IEquip iEquip) {
this.iEquip = iEquip;
}
diff --git a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecotator.java b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecorator.java
similarity index 84%
rename from app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecotator.java
rename to app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecorator.java
index a523d50..39f4a6e 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecotator.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/decorator/gem/YellowGemDecorator.java
@@ -9,11 +9,11 @@
* 这与武器等不同,它是可以累加的,而武器不能
*/
-public class YellowGemDecotator implements IEuipDecotator {
+public class YellowGemDecorator implements IEuipDecorator {
private IEquip iEquip;
- public YellowGemDecotator(IEquip iEquip) {
+ public YellowGemDecorator(IEquip iEquip) {
this.iEquip = iEquip;
}
diff --git a/app/src/main/java/com/example/jingbin/designpattern/facade/FacadeActivity.java b/app/src/main/java/com/example/jingbin/designpattern/facade/FacadeActivity.java
index a0a6026..bb7c86f 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/facade/FacadeActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/facade/FacadeActivity.java
@@ -1,14 +1,15 @@
package com.example.jingbin.designpattern.facade;
import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
import android.view.View;
-import android.widget.Button;
-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.ActivityFacadeBinding;
import com.example.jingbin.designpattern.facade.device.Computer;
import com.example.jingbin.designpattern.facade.device.Light;
import com.example.jingbin.designpattern.facade.device.Player;
@@ -16,9 +17,6 @@
import com.example.jingbin.designpattern.facade.device.Projector;
import com.example.jingbin.designpattern.facade.theater.HomeTheaterFacade;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* 外观模式:
* 定义:提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。
@@ -39,28 +37,18 @@
*/
public class FacadeActivity extends AppCompatActivity implements View.OnClickListener {
- @BindView(R.id.bt_facade)
- Button btFacade;
- @BindView(R.id.tv_define)
- TextView tvDefine;
- @BindView(R.id.bt_open)
- Button btOpen;
- @BindView(R.id.bt_close)
- Button btClose;
-
private HomeTheaterFacade homeTheaterFacade;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_facade);
- ButterKnife.bind(this);
+ ActivityFacadeBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_facade);
setTitle("外观模式");
- tvDefine.setText(EMTagHandler.fromHtml(AppConstant.FACADE_DEFINE));
+ binding.tvDefine.setText(EMTagHandler.fromHtml(AppConstant.FACADE_DEFINE));
- btFacade.setOnClickListener(this);
- btOpen.setOnClickListener(this);
- btClose.setOnClickListener(this);
+ binding.btFacade.setOnClickListener(this);
+ binding.btOpen.setOnClickListener(this);
+ binding.btClose.setOnClickListener(this);
}
@Override
diff --git a/app/src/main/java/com/example/jingbin/designpattern/factory/FactoryActivity.java b/app/src/main/java/com/example/jingbin/designpattern/factory/FactoryActivity.java
index 670931e..6c1e0da 100644
--- a/app/src/main/java/com/example/jingbin/designpattern/factory/FactoryActivity.java
+++ b/app/src/main/java/com/example/jingbin/designpattern/factory/FactoryActivity.java
@@ -1,16 +1,16 @@
package com.example.jingbin.designpattern.factory;
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 android.widget.Toast;
+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.ActivityRoujiaMoStoreBinding;
import com.example.jingbin.designpattern.factory.cxgc.XianRoujiaMoTeSeStore;
import com.example.jingbin.designpattern.factory.cxgc.XianSimpleRoujiaMoTeSeFactory;
import com.example.jingbin.designpattern.factory.gcff.XianRoujiaMoStore;
@@ -18,9 +18,6 @@
import com.example.jingbin.designpattern.factory.jdgc.RoujiaMoStore;
import com.example.jingbin.designpattern.factory.jdgc.SimpleRoujiaMoFactory;
-import butterknife.BindView;
-import butterknife.ButterKnife;
-
/**
* Created by jingbin on 2016/10/22.
*
@@ -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 @@
-
+
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.adapter.AdapterActivity">
-
+
-
+
-
+
-
+
+
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_chain_of_responsibility.xml b/app/src/main/res/layout/activity_chain_of_responsibility.xml
index 8a74eee..2f83322 100644
--- a/app/src/main/res/layout/activity_chain_of_responsibility.xml
+++ b/app/src/main/res/layout/activity_chain_of_responsibility.xml
@@ -1,67 +1,72 @@
-
+ android:layout_height="match_parent">
-
-
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context=".chainofresponsibility.ChainOfResponsibilityActivity">
-
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_command.xml b/app/src/main/res/layout/activity_command.xml
index c6e654a..098f42b 100644
--- a/app/src/main/res/layout/activity_command.xml
+++ b/app/src/main/res/layout/activity_command.xml
@@ -1,131 +1,133 @@
-
-
-
-
+
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginTop="10dp"
+ android:layout_marginBottom="10dp"
+ android:gravity="center"
+ android:text="智能家居遥控器"
+ android:textColor="@android:color/holo_green_dark"
+ android:textSize="15sp" />
+ android:orientation="horizontal">
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
-
+ android:layout_weight="1"
+ android:orientation="vertical">
+
+
+
+
+
+
+
+
-
-
+
-
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_composite.xml b/app/src/main/res/layout/activity_composite.xml
index acb2dd8..ac69fe8 100644
--- a/app/src/main/res/layout/activity_composite.xml
+++ b/app/src/main/res/layout/activity_composite.xml
@@ -1,67 +1,72 @@
-
+ android:layout_height="match_parent">
-
-
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context=".composite.CompositeActivity">
-
-
+
-
+
-
+
-
+
-
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_decorator.xml b/app/src/main/res/layout/activity_decorator.xml
index c09628b..853b6c9 100644
--- a/app/src/main/res/layout/activity_decorator.xml
+++ b/app/src/main/res/layout/activity_decorator.xml
@@ -1,54 +1,61 @@
-
-
-
+
-
-
-
+ android:layout_height="match_parent">
-
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_facade.xml b/app/src/main/res/layout/activity_facade.xml
index 670bfec..3b68325 100644
--- a/app/src/main/res/layout/activity_facade.xml
+++ b/app/src/main/res/layout/activity_facade.xml
@@ -1,66 +1,68 @@
-
+
-
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.facade.FacadeActivity">
-
+ android:text="外观模式" />
+
-
-
+ android:orientation="horizontal">
-
+
-
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_observer.xml b/app/src/main/res/layout/activity_observer.xml
index e77655c..d5e3e18 100644
--- a/app/src/main/res/layout/activity_observer.xml
+++ b/app/src/main/res/layout/activity_observer.xml
@@ -1,56 +1,58 @@
-
-
-
+
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.observer.ObserverActivity">
-
+
-
+
-
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_roujia_mo_store.xml b/app/src/main/res/layout/activity_roujia_mo_store.xml
index ed1a176..09b61dc 100644
--- a/app/src/main/res/layout/activity_roujia_mo_store.xml
+++ b/app/src/main/res/layout/activity_roujia_mo_store.xml
@@ -1,77 +1,84 @@
-
+
-
+ android:layout_height="match_parent">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_singleton.xml b/app/src/main/res/layout/activity_singleton.xml
index 6167c87..a53a579 100644
--- a/app/src/main/res/layout/activity_singleton.xml
+++ b/app/src/main/res/layout/activity_singleton.xml
@@ -1,52 +1,54 @@
-
-
-
+
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.singleton.SingletonActivity">
-
+
-
+
-
+
-
+
+
+
+
+
-
+
+
diff --git a/app/src/main/res/layout/activity_state.xml b/app/src/main/res/layout/activity_state.xml
index db18faf..e81c3d2 100644
--- a/app/src/main/res/layout/activity_state.xml
+++ b/app/src/main/res/layout/activity_state.xml
@@ -1,55 +1,56 @@
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.state.StateActivity">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_stategy.xml b/app/src/main/res/layout/activity_stategy.xml
index 0437e7b..9bd91c4 100644
--- a/app/src/main/res/layout/activity_stategy.xml
+++ b/app/src/main/res/layout/activity_stategy.xml
@@ -1,50 +1,52 @@
-
-
-
-
+
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.strategy.StrategyActivity">
-
-
+
+
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_template_method.xml b/app/src/main/res/layout/activity_template_method.xml
index dd6b2c6..6078632 100644
--- a/app/src/main/res/layout/activity_template_method.xml
+++ b/app/src/main/res/layout/activity_template_method.xml
@@ -1,54 +1,56 @@
-
-
-
+
-
-
-
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
+ android:paddingTop="@dimen/activity_vertical_margin"
+ android:paddingRight="@dimen/activity_horizontal_margin"
+ android:paddingBottom="@dimen/activity_vertical_margin"
+ tools:context="com.example.jingbin.designpattern.templatemethod.TemplateMethodActivity">
-
+
-
+
-
+
+
+
+
+
+
+
-
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 2ff1f46..62824d6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,8 +7,6 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
- classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'//Added line
- classpath 'com.jakewharton:butterknife-gradle-plugin:9.0.0-rc2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..5465fec
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,2 @@
+android.enableJetifier=true
+android.useAndroidX=true
\ No newline at end of file