设计模式上级实验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
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) {
();
}
}
}