设计模式上级实验5-组合模式实验

  • 格式:doc
  • 大小:108.00 KB
  • 文档页数:4

青 岛 理 工 大 学

课程实验报告

课程名称 软件设计与体系结构 班级 软件132 实验日期

&

姓名 孙玉东 学号 7 实验成绩

实验名称 组合模式实验

实验目的

及要求 (1)熟悉组合模式的核心思想;

(2)掌握组合模式的实现方法。

实验环境 Win7, VS2010

实验内容 1. 模拟实现Android的视图树结构

\

将对象View和ViewGroup组合成树形结构以表示"部分-整体"的层次结构;

组合模式使得用户对单个对象View和组合对象ViewGroup的使用具有一致性。

2. 参考类图如下:

算法描述及实验步骤 1.创建View类,定义公共方法

2.创建Button类继承view类并 实现方法

3.创建ViewGroup类继承view类,实现方法。且列中保存View集合

4.:

5.创建Liner'Layout类继承ViewGroup

6.创建测试类 调试过程及实验结果

总结 1.加深了对组合模式的理解。了解了组合模式的使用场景。组合模式适用于树形结构。

2.安全的组合模式,抽象类只包含共有的方法。ViewGroup特有的方法需要自己实现。这样避免了子类实现过多不必要的方法。增加了安全性。

&

public abstract class View {

public abstract void operation();

public abstract void onDraw();

}

2.button类

public class Button extends View {

@Override

public void operation() {

"-----Button-->operation");

}

*

@Override

public void onDraw() {

// TODO Auto-generated method stub

"-----Button-->onDraw");

}

}

3.textview类

\

public class TextView extends View{

@Override

public void operation() {

"-----TextView-->operation");

} @Override

public void onDraw() {

"-----TextView-->onDraw");

}

}

4.ViewGroup类

public class ViewGroup extends View{

public ArrayList viewList=new ArrayList();

public void operation() {

"ViewGroup-->operation");

}

public void addView(View view){

(view);

}

public void remove(View view){

(view);

}

public View getChildAt(int position){

return (position);

}

public void onDraw() {

"ViewGroup-->onDraw");

}

}

4.LinerLayout类

public class LinerLayout extends ViewGroup {

public void operation() {

"*****LinerLayout-->operation");

for (View view : viewList) {

();

}

}

public void onDraw() {

"*****LinerLayout-->onDraw");

!

for (View view : viewList) {

();

}

}

}

5.FrameLayout类

public class FrameLayout extends ViewGroup {

public void operation() {

"*****FrameLayout-->operation");

for (View view : viewList) {

();

}

}

public void onDraw() {

"*****FrameLayout-->onDraw");

for (View view : viewList) {

();

}

}

}