欢迎来到天天文库
浏览记录
ID:40313392
大小:86.50 KB
页数:13页
时间:2019-07-30
《设计模式复习重点(仅供参考)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、复习重点1.莫勇腾《深入浅出设计模式》书后习题所有选择题,问答题16,18,20,21,222.什么是设计模式?简述设计模式的作用设计模式是一种问题的解决思路,它已经适用于一个时间环境,并且可以使用语其他环境。通常是对于某一类软件设计问题的可重用的解决方案,将其引入软件设计和开发过程,可充分利用己有的软件开发经验设计优秀的软件。作用a重用设计,重用设计比重用代码更有意义,它会自动带来代码重用;b为设计提供共同的词汇,没个模式就是一个设计词汇,其概念使得程序员间的交流更加方便;c在开发文档中采用模式词汇可以让其他人更容易理解你的想
2、法,变邪恶开发文档就更容易;d应用设计模式可以让重构系统变容易,降低在设计或实现中出现错误的可能性;e可以节省大量时间。3.设计模根据目的准则分类(课本27章) 1,创建型:创建型比较容易理解。与对象的创建有关。如Factory,Builder 2,结构型:处理类或对象的组合。如Adapter,Facade,Proxy等 3,行为型:对类或对象怎么交互和怎么分配职责进行描述。如Strategy,Command4.适配器模式的主要功能和分类在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配
3、成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。对象适配器模式-在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对象的物理实体。类适配器模式-这种适配器模式下,适配器继承自已实现的类(一般多重继承)。5.单例模式实例(要写代码,要明白各种同步方法的区别,最好参考课件)ClassSingleton{privatestaticSingletoninstance;//注意采用PrivateprivateSingleton(){
4、}publicstaticSingletongetInstance(){if(instance==null)//1Instance=newSingleton();//2returninstance;//3}}publicsynchronizedstaticSingletongetInstance(){if(instance==null)//1Instance=newSingleton();//2returninstance;//3}publicstaticSingletongetInstance(){synchronized(S
5、ingleton.class){if(instance==null)Instance=newSingleton();}returninstance;}publicstaticSingletongetInstance(){if(instance==null){synchronized(Singleton.class){if(instance==null)instance=newSingleton();}}returninstance;}1.浅克隆和深克隆的概念及原型模式含义(含序列化必须的Serializable接口)浅克隆的对象
6、变量都含有和原来对象相同的值(这里变量指基本类型的变量,String类也算),但那些引用其他对象的变量任然指向原来的对象。深克隆的对象变量都含有和原来对象相同的值,但那些引用其他对象的变量将指向被复制过的新对象,而不再是原有的那些被引用的对象。深克隆把要克隆的对象所引用的对象都克隆了一遍。2.理解课件上第一堂课的实例“鸭子游戏”(要写代码)publicabstractclassDuck{//抽象鸭子类FlyBehaviorflyBehavior;QuackBehaviorquackBehavior;publicDuck(){};
7、publicabstractvoiddisplay();publicvoidperformFly(){flyBehavior.fly();}publicvoidperformQuack(){quackBehavior.quack();}publicvoidsetFlyBehavior(FlyBehaviorfb){flyBehavior=fb;}publicvoidsetQuackBehavior(QuackBehaviorqb){quackBehavior=qb;}publicvoidswim(){System.out.pri
8、ntln("Allducksfloat,evendecoys!");}}//抽象接口及实现publicinterfaceFlyBehavior{publicvoidfly();}publicclassFlyNoWayimplementsFlyBehavior{p
此文档下载收益归作者所有