第一范文网 - 专业文章范例文档资料分享平台

郑州大学软件学院设计模式

来源:用户分享 时间:2025/5/25 22:04:41 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

stu3=stu1.clone(); stu3.setStuName(\小龙女\ stu3.setStuSex(\女\ System.out.print(\姓名:\+ stu1.getStuName()); System.out.print(\,性别:\+ stu1.getStuSex()); System.out.print(\,年龄:\+ stu1.getStuAge()); System.out.print(\,专业:\+ stu1.getStuMajor()); System.out.print(\,学院:\+ stu1.getStuCollege()); System.out.print(\,学校:\+

stu1.getStuUniversity()); System.out.println(); System.out.print(\姓名:\+ stu2.getStuName()); System.out.print(\,性别:\+ stu2.getStuSex()); System.out.print(\,年龄:\+ stu2.getStuAge()); System.out.print(\,专业:\+ stu2.getStuMajor()); System.out.print(\,学院:\+ stu2.getStuCollege()); System.out.print(\,学校:\+

stu2.getStuUniversity()); System.out.println(); System.out.print(\姓名:\+ stu3.getStuName()); System.out.print(\,性别:\+ stu3.getStuSex()); System.out.print(\,年龄:\+ stu3.getStuAge()); System.out.print(\,专业:\+ stu3.getStuMajor()); System.out.print(\,学院:\+ stu3.getStuCollege()); System.out.print(\,学校:\+

stu3.getStuUniversity());

System.out.println(); } }

原型管理器

import java.util.*;

interface MyColor extends Cloneable { public Object clone(); public void display(); }

class Red implements MyColor {

public Object clone() {

Red r=null; try {

r=(Red)super.clone(); }

catch(CloneNotSupportedException e) { }

return r; }

public void display() {

System.out.println(\ } }

class Blue implements MyColor {

public Object clone() {

Blue b=null; try {

b=(Blue)super.clone(); }

catch(CloneNotSupportedException e) {

}

return b; }

public void display() {

System.out.println(\ } }

class PrototypeManager {

private Hashtable ht=new Hashtable();

public PrototypeManager() {

ht.put(\ ht.put(\ }

public void addColor(String key,MyColor obj) {

ht.put(key,obj); }

public MyColor getColor(String key) {

return

(MyColor)((MyColor)ht.get(key)).clone(); } }

class Client {

public static void main(String args[]) {

PrototypeManager pm=new PrototypeManager();

MyColor

obj1=(MyColor)pm.getColor(\ obj1.display();

MyColor

obj2=(MyColor)pm.getColor(\ obj2.display();

System.out.println(obj1==obj2); } }

单例模式

实例一:身份证号码

在现实生活中,居民身份证号码具有唯一性,同一个人不允许有多个身份证号码,第一次申请身份证时将给居民分配一个身份证号码,如果之后因为遗失等原因补办时,还是使用原来的身份证号码,不会产生新的号码。现使用单例模式模拟该场景。 public class Client { public static void main(String a[]) { IdentityCardNo no1,no2; no1=IdentityCardNo.getInstance(); no2=IdentityCardNo.getInstance(); System.out.println(\身份证号码是否一致:\

String str1,str2;

str1=no1.getIdentityCardNo(); str2=no1.getIdentityCardNo();

System.out.println(\第一次号码:\str1);

System.out.println(\第二次号码:\str2);

System.out.println(\内容是否相等:\+ str1.equalsIgnoreCase(str2));

System.out.println(\是否是相同对象:\ } }

public class IdentityCardNo { private static IdentityCardNo

instance=null; private String no; private IdentityCardNo() { } public static IdentityCardNo getInstance() { if(instance==null) { System.out.println(\第一次办理身份证,分配新号码!\ instance=new IdentityCardNo();

instance.setIdentityCardNo(\2\ } else { System.out.println(\重复办理身份证,获取旧号码!\ } return instance; } private void setIdentityCardNo(String no) { this.no=no; } public String getIdentityCardNo() { return this.no; } }

实例二:打印池 在操作系统中,打印池(Print Spooler)是一个用于管理打印任务的应用程序,通过打印池用户可以删除、中止或者改变打印任务的优先级,在一个系统中只允许运行一个打印池

对象,如果重复创建打印池则抛出异常。现使用单例模式来模拟实现打印池的设计。 public class Client { public static void main(String a[]) { PrintSpoolerSingleton ps1,ps2; try {

ps1=PrintSpoolerSingleton.getInstance(); ps1.manageJobs(); } catch(PrintSpoolerException e) {

System.out.println(e.getMessage()); }

System.out.println(\ try {

ps2=PrintSpoolerSingleton.getInstance(); ps2.manageJobs(); } catch(PrintSpoolerException e) {

System.out.println(e.getMessage()); } } }

public class PrintSpoolerException extends Exception { public PrintSpoolerException(String message) { super(message); } }

public class PrintSpoolerSingleton { private static PrintSpoolerSingleton instance=null; private PrintSpoolerSingleton() { } public static PrintSpoolerSingleton getInstance() throws PrintSpoolerException { if(instance==null) { System.out.println(\创建打印池!\ instance=new PrintSpoolerSingleton(); } else { throw new PrintSpoolerException(\打印池正在工作中!\ } return instance; } public void manageJobs() { System.out.println(\管理打印任务!\ } } 其他

public class Singleton { private static Singleton instance = null; private Singleton() { } public static Singleton getInstance()

{ if(instance==null)

instance=new Singleton();

return instance;

}

}

外观模式

实例一:电源总开关

现在考察一个电源总开关的例子,以便进一步说明外观模式。为了使用方便,一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。通过该电源总开关可以同时控制上述所有电器设备,使用外观模式设计该系统。 public class AirConditioner { public void on() { System.out.println(\空调打开!\ } public void off() { System.out.println(\空调关闭!\ } }

public class Client { public static void main(String args[]) { GeneralSwitchFacade gsf=new GeneralSwitchFacade(); gsf.on(); System.out.println(\ gsf.off(); }

}public class Fan {

搜索更多关于: 郑州大学软件学院设计模式 的文档
郑州大学软件学院设计模式.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9449s6o08m6d7jn4l22e_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top