package com.cheng.bigtalkdesignpatterns.decorator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; import com.cheng.designpatternstudy.R; public class BTDPDecotatorActivity extends AppCompatActivity { private static final String TAG = "BTDPDecotatorActivity"; private TextView mShowTest1TV; private TextView mShowTest2TV; private TextView mShowTest3TV; private Person person; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_btdp_decotator); initView(); initData(); } private void initView() { this.mShowTest1TV = (TextView) this.findViewById(R.id.bti_showtest1_tv); this.mShowTest2TV = (TextView) this.findViewById(R.id.bti_showtest2_tv); this.mShowTest3TV = (TextView) this.findViewById(R.id.bti_showtest3_tv); } private void initData() { person = new Person("小菜"); } public void onClick(View v) { switch (v.getId()) { case R.id.bti_test1_btn: test1(); break; case R.id.bti_test2_btn: test2(); break; case R.id.bti_test3_btn: test3(); break; } } private void test1() { person.clearStringBuilder(); Log.e(TAG, "\n第一种装扮:"); Sneakers sneakers = new Sneakers(); BigTrouser bigTrouser = new BigTrouser(); TShirts tShirts = new TShirts(); sneakers.decorate(person); bigTrouser.decorate(sneakers); tShirts.decorate(bigTrouser); tShirts.show(); person.getStringBuilder().insert(0, "\n" + "第一种装扮:"); mShowTest1TV.setText(person.getStringBuilder()); } private void test2() { person.clearStringBuilder(); Log.e(TAG, "\n第二种装扮:"); LeatherShoes leatherShoes = new LeatherShoes(); Tie tie = new Tie(); Suit suit = new Suit(); leatherShoes.decorate(person); tie.decorate(leatherShoes); suit.decorate(tie); suit.show(); person.getStringBuilder().insert(0, "\n" + "第二种装扮:"); mShowTest2TV.setText(person.getStringBuilder()); } private void test3() { person.clearStringBuilder(); Log.e(TAG, "\n第三种装扮:"); Sneakers sneakers = new Sneakers(); LeatherShoes leatherShoes = new LeatherShoes(); BigTrouser bigTrouser = new BigTrouser(); Tie tie = new Tie(); sneakers.decorate(person); leatherShoes.decorate(sneakers); bigTrouser.decorate(leatherShoes); tie.decorate(bigTrouser); tie.show(); person.getStringBuilder().insert(0, "\n" + "第三种装扮:"); mShowTest3TV.setText(person.getStringBuilder()); } }