《设计模式上级实验5-组合模式实验(共3页).doc》由会员分享,可在线阅读,更多相关《设计模式上级实验5-组合模式实验(共3页).doc(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上青 岛 理 工 大 学课程实验报告课程名称软件设计与体系结构班级软件132实验日期2016.05.20姓名孙玉东学号实验成绩实验名称组合模式实验实验目的及要求(1)熟悉组合模式的核心思想;(2)掌握组合模式的实现方法。实验环境Win7, VS2010实验内容1. 模拟实现Android的视图树结构将对象View和ViewGroup组合成树形结构以表示部分-整体的层次结构;组合模式使得用户对单个对象View和组合对象ViewGroup的使用具有一致性。2. 参考类图如下:算法描述及实验步骤1. 创建View类,定义公共方法2. 创建Button类继承view类并 实现方
2、法3. 创建ViewGroup类继承view类,实现方法。且列中保存View集合4. 创建LinerLayout类继承ViewGroup5. 创建测试类调试过程及实验结果总结 1.加深了对组合模式的理解。了解了组合模式的使用场景。组合模式适用于树形结构。 2.安全的组合模式,抽象类只包含共有的方法。ViewGroup特有的方法需要自己实现。这样避免了子类实现过多不必要的方法。增加了安全性。附录1.View类public abstract class View public abstract void operation();public abstract void onDraw();2. bu
3、tton类public class Button extends View Overridepublic void operation() System.out.println(-Button-operation);Overridepublic void onDraw() / TODO Auto-generated method stubSystem.out.println(-Button-onDraw);3. textview类public class TextView extends ViewOverridepublic void operation() System.out.printl
4、n(-TextView-operation);Overridepublic void onDraw() System.out.println(-TextView-onDraw);4. ViewGroup类public class ViewGroup extends Viewpublic ArrayList viewList=new ArrayList();public void operation() System.out.println(ViewGroup-operation);public void addView(View view)viewList.add(view);public v
5、oid remove(View view)viewList.remove(view);public View getChildAt(int position)return viewList.get(position);public void onDraw() System.out.println(ViewGroup-onDraw);4. LinerLayout类public class LinerLayout extends ViewGroup public void operation() System.out.println(*LinerLayout-operation);for (Vie
6、w view : viewList) view.operation();public void onDraw() System.out.println(*LinerLayout-onDraw);for (View view : viewList) view.onDraw();5. FrameLayout类public class FrameLayout extends ViewGroup public void operation() System.out.println(*FrameLayout-operation);for (View view : viewList) view.operation();public void onDraw() System.out.println(*FrameLayout-onDraw);for (View view : viewList) view.onDraw();专心-专注-专业