1. public class Persion {
    2. private String name;
    3. public Persion() {
    4. }
    5. public Persion(String name) {
    6. super();
    7. this.name = name;
    8. }
    9. public void show() {
    10. System.out.println("装扮的"+this.name);
    11. }
    12. }
    13. // 服饰类
    14. public class Finery extends Persion {
    15. protected Persion compoent;
    16. public void Decorate(Persion component) {
    17. this.compoent=component;
    18. }
    19. public void show() {
    20. if(compoent!=null) {
    21. compoent.show();
    22. }
    23. }
    24. }
    25. // 具体装饰类
    26. public class PiXie extends Finery{
    27. @Override
    28. public void show() {
    29. System.out.print("皮鞋");
    30. super.show();
    31. }
    32. }
    33. public class Big_Thours extends Finery{
    34. @Override
    35. public void show() {
    36. System.out.print("大裤子");
    37. super.show();
    38. }
    39. }
    40. public class XiFu extends Finery{
    41. @Override
    42. public void show() {
    43. System.out.print("西服");
    44. super.show();
    45. }
    46. }
    47. public class Test {
    48. public static void main(String[] args) {
    49. Persion xc=new Persion("小菜");
    50. // 皮鞋
    51. PiXie piXie=new PiXie();
    52. // 西服
    53. XiFu xiFu=new XiFu();
    54. // 大裤子
    55. Big_Thours big_Thours=new Big_Thours();
    56. // 装饰过程
    57. piXie.Decorate(xc);
    58. xiFu.Decorate(piXie);
    59. big_Thours.Decorate(xiFu);
    60. big_Thours.show();
    61. }
    62. }