设计模式考点(共16页)

上传人:b410****zcfj 文档编号:52763088 上传时间:2022-02-09 格式:DOCX 页数:17 大小:244.46KB
收藏 版权申诉 举报 下载
设计模式考点(共16页)_第1页
第1页 / 共17页
设计模式考点(共16页)_第2页
第2页 / 共17页
设计模式考点(共16页)_第3页
第3页 / 共17页
资源描述:

《设计模式考点(共16页)》由会员分享,可在线阅读,更多相关《设计模式考点(共16页)(17页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上设计模式题库-自编版选择题1、设计模式具有( )的优点。A、提高系统性能 B、降低软件规模和复杂度C、减少代码开发工作量 D、提升软件设计的质量2、 在面向对象软件的开发中,采用设计模式( )。 A、 可以减少在设计和过程中需要创建的实例对象的数量B、 可以保证程序的运行速度达到最优值C、 可以复用相似问题的相同解决方案D、 允许在非面向对象程序设计语言中使用面向对象的概念3、 ( )都是行为型设计模式。A、 组合模式、适配者模式和代理模式B、 观察者模式、职责链模式和策略模式C、 原型模式、建造者模式和单例模式D、 迭代器模式、命令模式和桥接模式4.开闭原则是面向对

2、象的可复用设计的基石,开闭原则是指一个软件实体应当对( )开放,对( )关闭;里氏代换原则是指任何( )可以出现的地方,( )一定可以出现;依赖倒置原则就是依赖于( ),而不要依赖于( ),或者说要针对接口编程,不要针对实现编程。A、修改 B、扩展 C、分析 D、设计A、修改 B、扩展 C、分析 D、设计A、变量 B、常量 C、基类对象 D、子类对象A、变量 B、常量 C、基类对象 D、子类对象A、程序设计语言 B、建模语言 C、实现 D、抽象A、程序设计语言 B、建模语言 C、实现 D、抽象5.关于单一责原则,以下叙述错误的是( )。A、 一个雷只负责一个功能领域中的相应职责。B、 就一个类

3、而言,应该有且仅有一个引起它变化的原因。C、 一个类承担的职责越多,越容易复用,被复用的可能性越大。D、 当一个类承担的职责过多时,需要将职责进行分离,将不同的职责封装 在不同的类中。6.以下关于面向对象设计的的叙述中,错误的是( )。A、 高层模块不应该依赖于低层模块。B、 抽象不应该依赖于细节。C、 细节可以依赖于抽象。D、 高层模块无法不依赖于低层模块。7.在系统设计中应用迪米特法则,以下叙述有误的是( )。A、 在类的划上,一个尽量创建松耦合的类,类的耦合度越低,复用越容易。B、 如果两个类之间不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。C、 在对其他类的引用上,一个对象

4、对其他对象的引用应该降到最低。D、 在类的设计上,只要有可能,一个类型应该尽量设计成抽象类或接口,且成员变量和成员函数的访问权限最好设置为公开的。8.在简单工厂模式中,如果需要增加新的具体产品,通常需要修改( )的源代码。A、抽象产品类 B、其他具体产品类 C、工厂类 D、客户类9.以下关于简单工厂模式叙述错误的是( )。A、简单工厂模式可以根据参数的不同返回不同的产品类的实例。B、简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。C、简单工厂模式可以减少系统中的类的个数,简化系统的设计,使得系统更易于理解。D、系统的扩展困难,在添加新的产品时需要修好工厂的业

5、务逻辑,违背了开闭原则。10.以下代码使用了( )模式。abstract class Product专心-专注-专业public abstract void Process();class ConcreateProductB:ProductPublic override void Process().Class FactoryPublic static Product CreateProduct(char type)Switch(type)Case A:Return new ConcreateProductA(); break;Case B:Return new ConcreateProduc

6、tB();break;A、 Simple Factory B、Factory Method B、 C、Abstract Factory D、未使用任何设计模式11.不同品牌的手机应该由不同是公司所造,例如Motorola公司生产Motorola手机,Nokia公司生产Nokia手机。该场景蕴含了( )模式。A、Simple Factory B、Factory Method C、Abstract Factory D、Builder12.以下关于工厂方法模式的叙述错误的是( )。A、 在工厂方法模式中引入了抽象工厂类,二具体产品的场景延迟到具体工厂中实现B、 使用工厂方法模式添加新的产品对象很容易

7、,无须对原有系统进行修改,符合开闭原则C、 工厂方法模式存在的问题是在添加新产品时,需要编写新的具体产品类,而且提供与之对应的具体工厂类,随着类个数的增加,会给系统带来一些额外开销。D、 工厂方法模式是所有形式的工厂模式中的最为抽象和最具一般性的一种形态,工厂方法模式退化后可以演变成抽象工厂模式。13.某银行系统采用工厂模式描述其不同账户之间的关系,设计出的类图如图4-7所示。其中,与工厂模式中的“Creator”角色相对应的类是();与“Product”角色相对应的类是( )。A、BankB、AccountC、CheckingD、SavingsA、BankB、AccountC、Checkin

8、gD、Savings14、关于C#中的MemberwiseClone()方法,以下叙述有误的是( )。A、对于对象x,都有x.MemberwiseClone()=xB、对于对象x,都有x.MemberwiseClone().GetType()=x.GetType()C、对于对象x的成员对象Member,都有x.MemberwiseClone().Menber=x.MemberD、对于对象x的成员对象Member,都有x.MemberwiseClone().Member.GetType()=x.Member.GetType.15.以下关于原型模式叙述错误的是( )。A、 原型模式通过给出一个原型

9、对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象B、 浅克隆仅仅复制所考虑的对象,而不复制它所引用的对象,也就是其中的成员对象并不复制C、 在原型模式中实现深克隆时通常需要编写较为复杂的代码D、 在原型模式中不需要为每一个类配备一个克隆方法,因此对于原型模式的扩展很灵活,对于已有类的改造也较为容易16.某公司要开发一个即时聊天软件,用户在聊天过程中可以与多位好友同时聊天,在私聊时将产生多个聊天窗口,为了提高聊天窗口的创建效率,要去根据第一个窗口快速创建其他窗口。针对这种需求,采用()进行设计最为合适。A、 享元模式B、单例模式C、原型模式D、组合模式17.在(

10、)时可使用单例模式。A、 隔离菜单项对象的创建和使用B、 防止一个资源管理器窗口被实例化多次C、 使用一个已有的查找算法而不想修改既有代码D、 不能创建子类,需要扩展一个数据过滤器18.以下关于单例模式的描述,正确的是()。A、 它描述了只有一个方法的类的集合B、 它能够保证一个类只产生一个唯一的实例C、 它描述了只有一个属性的类的集合D、 它能够保证一个类的方法只能被一个唯一的类调用19.以下()不是单例模式的要点。A、 某个类只能有一个实例B、 单例类不能被继承C、 必须自行创建单个实例D、 必须自行向整个系统提供单个实例20、()将一个类的接口转换成客户希望的另外一个接口,使得原本由于接

11、口不兼容而不能一起工作的那些类可以一起工作。A、命令(Command)模式B、适配器(Adapter)模式C、策略(Strategy)模式D、单例(Simple)模式21.以下关于适配器模式的叙述错误的是()。A、 适配器模式将一个接口装换成客户希望的另一个接口,使得原本由于接口不兼容那些类可以一起工作。B、 在类适配器中,Adapter和Adaptee是继承关系,而在对象适配器中,Adapter和Adaptee是关联关系。C、 类适配器比对象适配器更加灵活,在C#语言中可以通过类适配器一次视频多个适配者类。D、 适配器可以在不修改原来的适配者接口Adaptee的情况下将一个类的接口和另一个类

12、的接口匹配起来。22.现需要开发一个文件转换软件,将文件由一种格式转换为另一种格式,例如将XML文件转换为PDF文件,将DOC文件转换为TXT文件,有些文件格式转换代码已经存在,为了将已有的代码应用于新软件,而不需要修改软件的整体结构,可以使用()模式进行系统设计。A、 适配器(Adapter)B、组合(Composite)C、外观(Faced)D、桥接(Bridge)23.在对象适配器模式中,适配器类(Adapter)和适配者类(Adaptee)之间的关系为()。A、 关联关系B、依赖关系C、继承关系D、实现关系24.()模式将抽象部分与它的实现部分相分离,使它们都可以独立地变化。图10-7

13、所示为该模式的图,其中,()用于定义实现部分的接口。A、单例(Simple) B、桥接(Bridge) C、组合(Composite) D、外观(Faced)A、AbstractionB、ConcreteImplementorA C、ConcreteImplementorBD、Implementor25.以下关于桥接模式的叙述错误的是()。A、 桥接模式的用意是将抽象化与实现化解耦,使得亮着可以独立地变化。B、 桥接模式将继承关系转换成关联关系,从而降低系统的耦合度。C、 桥接模式来源动态地给一个对象增加功能,这些功能也可以动态的撤销。D、 桥接模式可以从接口中分离实现功能,使得设计更具有扩展

14、性。26.()不是桥接模式所适用的环境。A、 一个可以跨平台并支持多种格式的文件编辑器B、 一个支持多数据源的报表生成工具,可以以不同的图形方式显示报表信息C、 一个可动态选择排序算法的数据操作工具D、 一个支持多种编程语言的跨平台开发工具27.当不能采用生成子类的方法进行扩展时,可采用()模式动态地给一个对象添加一些额外的职责。A、外观(Faced) B、单例(Simple) C、参与者(Participant) D、装饰(Decorator)1、 以下()不是装饰模式的适用条件。A、 要扩展一个类的功能或给一个类增加附加责任B、 要动态地给一个对象增加功能,这些功能还可以动态撤销C、 要动

15、态组合多于一个的抽象化角色和实现化角色D、 要通过一些基本功能的组合产生复杂功能,而不使用继承关系28.Windows操作系统中的应用程序快捷方式是()模式的应用实例。A、代理(Proxy) B、组合(Composite) C、装饰(Decorator) D、外观(Faced)1、 以下关于代理模式的叙述错误的是()。A、 代理模式能够协调调用者和被调用者,从而在一定程度上降低系统的耦合度B、 控制对一个对象的访问,给不同的用户提供不同级别的使用权限时可以考虑使用远程代理C、 代理模式的缺点是请求的处理速度会变慢,并且实现代理模式需要额外的工作D、 代理模式给某一个对象提供一个代理,并由代理对

16、象控制对原对象的引用29.代理模式有多种类型,其中,智能引用代理是指()。A、 为某一个目标操作的结果提供临时的存储空间,以便多个客户端可以共享这些结果B、 保护目标不让恶意用户接近C、 使几个用户能够同时使用一个对象而没有冲突D、 当一个对象被引用时,提供一些额外的操作,例如将此对象被调用的次数记录下来30.以下关于命令模式的叙述错误的是()。A、 命令模式将一个请求封装为一个对象,从而可以用不同的请求对客户进行参数化B、 命令模式可以将请求发送至和请求接受者解耦C、 使用命令模式会导致某些系统有过多的具体命令类,导致在有些系统中命令模式变得不切实际D、 命令模式是对命令的封装,命令模式把发

17、出命令的责任和执行命令的责任机制在同一个类中,委派给同意的类来进行处理31.在()时无需使用命令模式。A、 实现撤销操作和恢复操作B、 将请求的发送者和接收者解耦C、 不改变聚合类的前提下定义作用于聚合中元素的新操作D、 不同的时间指定请求,并将请求排队32.()模式定义了对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。A、 适配器(Adapter) B、迭代器(Iterator) C、原型(Prototype) D、观察者(Observer)33.在观察者模式中,( )。A、 一个Subject对象可对应多个Observer对象B、 Su

18、bject只能有一个ConcreteSubject子类C、 Observer只能有一个ConcreteObserver子类D、 一个Subject对象必须至少对应一个Observer对象34.下面这句话隐含了()模式。我和妹妹跟妈妈说:“妈妈,我和妹妹在院子里玩。饭做好了叫我们一声。”A、 适配器B、职责链C、观察者D、迭代器简答题1. 什么是设计模式,它包含那些基本要素? 设计模式是一套反复使用的、多数人知晓、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且提高代码的可靠性。设计模式是一种用于对软件系统中不断重现的设计问题的解决方案进行文档化的技术

19、,也是一种共享专家设计经验的技术。设计模式的基本要素:模式名称、问题、目的、解决方案、效果、实例代码、相关设计模式(其中有4个关键要素:模式名称、问题、解决方案、效果)2. 设计模式如何分类,每一类设计模式有何优点? (1)根据目的可分为创建型,结构型和行为型; 创建型模式主要用于创建对象 结构型模式主要用于处理类或对象的组合 行为型模式主要用于描述类或对象如何交互和怎样分配职责 (2)根据范围,即模式主要是处理类之间的关系还是处理对象之间的关系,可分为类模式和对象模式; 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是一种静态关系 对象模式处理对象间的关系,这些

20、关系在运行时变化,更具动态性3. 设计模式具有哪些优点?(1)融合了众多专家的经验,并以一种标准的形式供广大开发人员所用(2)提供了一套通用的设计词汇和一种通用的语言,以方便开发人员之间进行沟通和交流,使得设计方案更加通俗易懂(3)让人们可以更加简单方便地复用成功的设计和体系结构(4)使得设计方案更加灵活,且易于修改(5)将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本(6)有助于初学者更深入地理解面向对象思想,方便阅读和学习现有类库与其他系统中的源代码,还可以提高软件的设计水平和代码质量4. 常见的设计模式有哪些优点?简单工厂模式:(1)实现了对象创建和使用的分离;(2)客户端

21、无须知道所创建的具体产品类的类名,只需要知道具体产品类所对应的参数即可;工厂方法模式:(1)工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节;(2)能够让工厂自主确定创建何种产品对象,而如何创建这个对象的细节则完全封装在具体工厂内部;(3)在系统中加入新产品时,完全符合开闭原则;单例模式:(1)提供了对唯一实例的受控访问;(2)可以节约系统资源,提高系统的性能;原型模式:(1)简化对象的创建过程,通过复制一个已有实例可以提高新实例的创建效率扩展性较好;(2)提供了简化的创建结构,原型模式中产品的复制是通过封装在原型类中的克隆方法实现的,无须专门的工厂类来创建

22、产品;(3)可以使用深克隆的方式保存对象的状态,以便在需要的时候使用,可辅助实现撤销操作;适配器模式:(1)将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者类,无须修改原有结构;(2)增加了类的透明性和复用性,提高了适配者的复用性,同一个适配者类可以在多个不同的系统中复用;(3)灵活性和扩展性非常好;装饰模式:(1)对于扩展一个对象的功能,装饰模式比继承更加灵活,不会导致类的个数急剧增加;(2)可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的具体装饰类,从而实现不同的行为;(3)可以对一个对象进行多次装饰;(4)具体构件类与具体装饰类可以独立变化,用

23、户可以根据需要增加新的具体构件类和具体装饰类,且原有类库代码无须改变,符合开闭原则;代理模式:(1)能够协调调用者和被调用者,在一定程度上降低了系统的耦合度;(2)客户端可以针对抽象主题角色进行编程,增加和更换代理类无须修改源代码,符合开闭原则,系统具有较好的灵活性和可扩展性;桥梁模式:(1)需要在抽象化和具体化之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系;(2)抽象部分和实现部分可以以继承的方式独立扩展而互不影响;(3)一个类存在两个(或多个)独立变化的维度,且这两个(或多个)维度都需要独立地进行扩展不希望使用继承或因为多层继承导致系统类的个数急剧增加的系统;观察者模式:(1)

24、可以实现表示层和数据逻辑层的分离;(2)在观察目标和观察者之间建立一个抽象的耦合;(3)支持广播通信,简化了一对多系统设计的难度;(3)符合开闭原则,增加新的具体观察者无须修改原有系统代码,在具体观察者与观察目标之间不存在关联关系的情况下,增加新的观察目标也很方便;命令模式:(1)降低了系统的耦合度;(2)新的命令可以很容易地加入到系统中,符合开闭原则;(3)可以比较容易地设计一个命令队列或宏命令(组合命令);(4)为请求的撤销(Undo)和恢复(Redo)操作提供了一种设计和实现方案;5. 透明与半透明模式透明模式:客户端完全对抽象编程;半透明模式:使用具体装饰类型定义装饰之后的类,而具体构

25、件可以继续使用抽象构件类型来定义;不可以实现对同一个对象的多次修饰。6. 设计原则的概念(前四个)、优点。单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。优点:(1)类的复杂度降低,实现什么职责都有清晰明确的定义;(2)可读性提高;复杂度降低,那当然可读性提高了;(3)可维护性提高,可读性提高,那就更容易维护了;(4)变更引起的风险降低;也就是说提高了扩展性和可维护性开闭原则:软件实体应当对扩展开放,对修改关闭。优点:方便对系统进行扩展,在扩展时无需修改代码,提高系统的稳定性和延续性。里士代换原则:所有引用基类的地方必须能透明地使用其子类的对象。优点:运行时,子类

26、实例替换父类实例,可以很方便地扩展系统的功能,无须修改原有子类的代码,增加一个新的功能可以通过增加一个新的子类来实现。依赖倒转原则:高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。优点:系统具有很好的灵活性,当系统行为发生变化,只需要对抽象层进行扩展,在不修改的情况下来扩展系统的功能。7.浅克隆与深克隆的区别浅克隆:当原型对象被复制时,只复制它本身和其中包含的值类型的成员变量,而引用类型的成员变量并没有复制;深克隆:除了对象本身被复制外,对象所包含的所有成员变量也将被复制;8.分析理解饿汉式和懒汉式单例的异同。共同点:饿汉式单例类和懒汉式单例类的构造函

27、数都是私有的。饿汉式单例类:无须考虑多个线程同时访问的问题;调用速度和反应时间优于懒汉式单例;资源利用效率不及懒汉式单例;系统加载时间可能会比较长懒汉式单例类:实现了延迟加载;必须处理好多个线程同时访问的问题;需通过双重检查锁定等机制进行控制,将导致系统性能受到一定影响9.什么是双重锁定?为什么要进行双重锁定,JAVA中如何实现双重锁定。 定义:是一种对单例对象创建进行控制的双重判断机制。 目的:更好地对单例对象的创建进行控制。实现过程:在双重检查锁定中,当实例不存在且同时有两个线程调用Get Instance()方法时,它们都可以通过第一重“instance=null”判断,如果此时不进行“

28、instance=null”判断,第二个线程并不知道实例已经创建,将会创建新的实例,还会产生多个单例对象,违背了单例模式的设计思想。代码题1. (简单工厂模式)使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果向造人的工厂方法传入参数“M”,则返回一个男人(Man)对象,如果传入参数“W”则返回一个女人(Woman)对象,绘制相应的类图并使用JAVA语言模拟实现该场景。先需要增加一个新的机器人类,如果传入参数“R”则返回一个机器人(Robot)对象,对代码进行修改并注意女娲类的变化。Person.javapublic interface Person public void per

29、sonmethod();Manperson.javapublic class ManPerson implements Personpublic void personmethod()System.out.println(男人);Woman.javapublic class WomanPerson implements Person public void personmethod()System.out.println(女人);Creator.javapublic class Creator public static Person createperson(String type)Pers

30、on person = null;if(type.equals(M)person = new ManPerson();else if(type.equals(W)person = new WomanPerson();return person;Client.javapublic class Client public static void main(String args) Person person;person = Creator.createperson(W); person.personmethod();2. (简单工厂方法)使用简单工厂方法模式设计一个可以创建一个不同几何形状,如圆

31、形、矩形、三角形等绘图工具类,每个几何图形均具有绘制、擦除两个方法,要求在绘制不支持的集合图形时,抛出一个异常,绘制类图并使用JAVA语言编程模拟实现。类似上面3. (工厂方法模式)宝马(BMW)工厂制造宝马汽车,奔驰(Benz)工厂制造奔驰汽车。使用工厂方法模式模拟场景,要求绘制相应的类图,并用JAVA语言编程模拟实现Creator.javapublic interface Creator public Product factory();BMWCreator.javapublic class BMWCreator implements Creatorpublic Product facto

32、ry()return new BMWProduct();BenzCreator.javapublic class BenzCreator implements Creatorpublic Product factory()return new BenzProduct();Product.javapublic interface Product BenzProduct.javapublic class BenzProduct implements Productpublic void BenzProduct()System.out.println(奔驰被创造);BMWProduct.javapu

33、blic class BMWProduct implements Productpublic void BMWProduct()System.out.println(宝马被创造);Client.javapublic class Client public static Creator c1,c2;public static Product p1,p2;public static void main(String args) c1 = new BenzCreator();p1 = c1.factory();c2 = new BenzCreator();p2 = c2.factory();4. (

34、工厂方法模式)某数据统计系统中,曲线图创建器生成曲线图,柱状图创建器生成柱状图。试用工厂方法模式设计该系统,要求绘制相应的类图,并用JAVA语言编程模拟实现。类似5. (原型模式)为某销售系统设计一个客户类Customer,在客户类中包含一个名为客户地址的成员变量,客户地址的类型为Address,用浅克隆和深克隆分别实现Customer对象的复制,并比较两种方式的异同。6. (单例模式)某软件公司开发人员要创建一个数据库连接池将指定个数(如两个或3个)数据库连接对象存储在连接池中,客户端代码可以从池中随机取一个连接对象来连接数据库,试通过对单例类进行改造,设计一个能够自行提供滴定个数实例对象的

35、数据库连接类并用JAVA语言编程模拟实现。7. (观察者模式)“猫Cat大叫一声,老鼠Mouse开始逃跑,主人Master被惊醒”。这个过程蕴含了哪种设计模式?要求绘制相应的类图,并用JAVA语言编程模拟实现。8. (命令模式)房间中的开关就是命令模式的一个实现,试用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并使用JAVA语言编程模拟。 AbstractCommand.javapublic abstract class AbstractCommand public abstract void open(); public abstract void close();

36、Switch.javapublic class Switch private AbstractCommand abstractCommand; public void setComman(AbstractCommand abstractCommand) this.abstractCommand = abstractCommand; public void open() abstractCommand.open(); public void close() abstractCommand.close(); FunCommand.javapublic class FunCommand extend

37、s AbstractCommand private Fun fun = new Fun(); public void open() fun.open(); public void close() fun.close(); LightCommand.javapublic class LightCommand extends AbstractCommand private Light light = new Light(); public void open() light.open(); public void close() light.close(); Fun.javapublic clas

38、s Fun public void open() System.out.println(开风扇); public void close() System.out.println(关风扇); Light.javapublic class Light public void open() System.out.println(开灯); public void close() System.out.println(关灯); public class Client public static void main(String args) Switch s = new Switch(); Abstrac

39、tCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); public class public class Client public static void main(String args) Switch s = new Switch(); AbstractCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); public static vo

40、id main(String args) Switch s = new Switch(); AbstractCommand ac;ac = (AbstractCommand)XMLUtil.getBean(); s.setComman(ac); s.open(); s.close(); 9. (代理模式)在一个论坛中已注册用户和游客的权限不同,已注册的用户拥有发帖、修改自己的注册信息、修改自己的帖子等功能;而游客只能看到别人发的帖子,没有其他权限。试用保护代理来设计该权限管理模块AbstractPermission.javapublic interface AbstractPermission

41、 public void modifyUserInfo(); public void viewNote(); public void pulishNote(); public void modifyNote(); public void setLevel(int Level);RealPermission.javapublic class RealPermission implements AbstractPermission public void modifyUserInfo() System.out.println(修改用户信息); public void viewNote() publ

42、ic void pulishNote() System.out.println(发布新帖); public void modifyNote() System.out.println(修改发布内容!); public void setLevel(int Level) permissionProxy.javaimplements AbstractPermission private RealPermission permission=new RealPermission(); private int level=0; public void modifyUserInfo() if(0=level)

43、 System.out.println(对不起,你没有该权限); else if(1=level) permission.modifyUserInfo(); public void viewNote() System.out.println(查看帖子!); public void pulishNote() if(0=level) System.out.println(对不起,你没有该权限!); else if(1=level) permission.pulishNote(); public void modifyNote() if(0=level) System.out.println(对不起

44、,你没有该权限!); else if(1=level) permission.modifyNote(); public void setLevel(int level) this.level=level; Client.javapublic class Client public static void main(String args) AbstractPermission permission; permission=new permissionProxy(); permission.modifyUserInfo(); permission.viewNote(); permission.pulishNote(); permission.modifyNote(); System.out.println(-); permission.setLevel(1); permission.modifyUserInfo(); permission.viewNote(); permission.pulishNote(); permission.modifyNote();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!