精华内容
下载资源
问答
  • 实验一 软件设计模式之工厂模式实验 一、实验目的 掌握软件设计模式中的工厂模式,能够用工厂模式编写程序,解决实际问题。 二、实验内容与要求 内容:使用工厂模式写一个简单的计算器,能实现加减乘除运算。...

    实验一 软件设计模式工厂模式实验 

    一、实验目的

    掌握软件设计模式中的工厂模式,能够用工厂模式编写程序解决实际问题。

    二、实验内容与要求

    内容使用工厂模式写一个简单的计算器,能实现加减乘除运算。要求输入两个数,选择运算符,程序便能够计算出结果。程序设计语言可自由选择。

    要求需要文字+代码+截图的形式对实验主要代码和运行结果进行展示描述。

    三、实验方法

    1. 创建一个工厂窗口类(factoryPatternDemo.java)和工厂类(countFactory.java),通过工厂窗口类发出的需求,调用工厂类。

    2.创建加减乘除四种功能类,方便接口的调用。

    3. 创建接口(count.java),工厂类通过接口调用加减乘除等子类函数,实现操作,很好的隐藏了加减乘除的具体细节。

    、实验代码以及结果

    //factoryPatternDemo.java
    package homework;
    
    import java.util.Scanner;
    
    public class factoryPatternDemo {
        public static  void main(String [] args){
              countFactory countFactory1= new countFactory();
              System.out.println("请你输入要进行计算的运算符:如'add' 'sub' ' mul' 'div' : ");
              Scanner sc= new Scanner(System.in);
              String name= sc.nextLine();
              System.out.println("请输入要计算的两个数字(中间以空格隔开):");
              Scanner sc1= new Scanner(System.in);
              double a= sc1.nextDouble();
              double b= sc1.nextDouble();
    
              if(name.equalsIgnoreCase("add")){
                  count cout1=countFactory1.getcount("add");
                  cout1.calculate(a , b);
              }else  if(name.equalsIgnoreCase("sub")){
                  count cout1=countFactory1.getcount("sub");
                  cout1.calculate( a, b);
              }else if(name.equalsIgnoreCase("mul")){
                  count cout1=countFactory1.getcount("mul");
                  cout1.calculate( a, b);
              }else if(name.equalsIgnoreCase("div")){
                  count cout1=countFactory1.getcount("div");
                  cout1.calculate( a, b);
              }
        }
    }
    
    countFactory.java
    package homework;
    
    public class countFactory {
        public  count  getcount(String countType){
            if(countType ==null ){
                return null;
            }
            if(countType.equalsIgnoreCase("add")) {
                return new addDemo();
            } else
                if(countType.equalsIgnoreCase("sub")){
                return new subDemo();
                } else
                    if(countType.equalsIgnoreCase("div")){
                    return new divDemo();
                    } else
                        if(countType.equalsIgnoreCase("mul")){
                        return new mulDemo();
                        }
                        return null;
        }
    }
    //接口类count.java
    package homework;
    
    public interface count {
        void calculate(double x,double y );
    }
    //addDemo.java
    package homework;
    public class addDemo implements count {
        @Override
        public void calculate(double x, double y) {
            double z;
            z=x+y;
            System.out.println("两数相加的结果是:"+z);
    
        }
    }
    
    
    
    //divDemo.java
    
    package homework;
    public class divDemo implements count  {
        @Override
        public void calculate(double x,double y) {
            double z;
            z=x/y;
            System.out.println( "两数相除的结果是:"+ z);
        }
    }
    //mulDemo.Java
    package homework;
    public class mulDemo implements count  {
        @Override
        public void calculate(double x, double y) {
            double z;
            z=x*y;
            System.out.println( "两数相乘的结果是:"+ z);
        }
    }
    
    //subDemo.Java
    package homework;
    public class subDemo implements count  {
        @Override
        public void calculate(double x, double y ) {
            double z;
            z=x-y;
            System.out.println( "两数相减的结果是:"+ z);
        }
    }

    结果截图:

     

     

     

     

     

     

    展开全文
  • 软件设计模式实验

    2015-05-05 11:33:48
    实验一、使用Visio或Rose画出6个创建型设计模式的UML图。在实验报告中说明使用Visio或Rose画UML图的心得体会,并分析总结各个创建型设计模式的特点和适用场合。
  • 实验 软件设计模式之适配器模式实验 、实验目的 掌握软件设计模式中的适配器模式,能够用适配器模式编写程序,解决实际问题。 二、实验内容与要求 内容:举个现实生活中的适配器的例子,并用适配器模式对其进行...

    实验 软件设计模式之适配器模式实验

    一、实验目的

    掌握软件设计模式中的适配器模式,能够用适配器模式编写程序,解决实际问题。
    二、实验内容与要求

    内容:举一个现实生活中的适配器的例子,并用适配器模式对其进行模拟,程序设计语言可自由选择。
    要求:需要用“文字+代码+截图”的形式对实验的主要代码和运行结果进行展示和描述。
    三、实验方法

    1. 举例:配器模式是23中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。它非常像我们出国旅行时带的电源转换器。我们国家的电器使用普通的扁平两项或三项插头,而去外国的话,使用的标准就不一样了,怎样解决这个问题呢?只要使用一个电源转化器就行了。
    2. 代码中有两个接口,分别为德标接口和国标接口,分别命名为DBSocketInterface和GBSocketInterface,此外还有两个实现类,分别为德国插座和中国插座,分别为DBSocket和GBSocket。为了提供两套接口之间的适配,我们提供了一个适配器,叫做SocketAdapter。除此之外,还有一个客户端,比如是我们去德国旅游时住的一家宾馆,叫Hotel,在这个德国旅馆中使用德国接口。
      德标接口:
    public interface  DBSocketInterface {
        /**
         * 这个方法的名字叫做:使用两项圆头的插口供电
         */
        void powerWithTwoRound();
    }
    
    1. 德国插座实现德标接口
    /**
     * 德国插座
     */
    ublic class DBSocket implements DBSocketInterface{     
        ublic void  powerWithTwoRound(){
            System.out.println("使用两项圆头的插孔供电");
        }
    } 
    
    1. 德国旅馆是一个客户端,它里面有德标的接口,可以使用这个德标接口给手机充电:
    /**
     * 德国宾馆
     */
    public class  Hotel {
        //旅馆中有一个德标的插口
        private DBSocketInterface dbSocket;
        public Hotel(){}
        public Hotel(DBSocketInterface dbSocket) {
            this.dbSocket = dbSocket;
        }
        public void  setSocket (DBSocketInterface dbSocket){
            this.dbSocket = dbSocket;
        }
        //旅馆中有一个充电的功能
        public void  charge(){        
            //使用德标插口充电
            dbSocket.powerWithTwoRound();
        }
    }
    
    1. 现在写一段代码进行测试:
    public class  Test {
        public static  void  main(String[] args) {
            //初始化一个德国插座对象, 用一个德标接口引用它
            DBSocketInterface dbSoket = new DBSocket();
            //创建一个旅馆对象
            Hotel hotel = new Hotel(dbSoket);
     //在旅馆中给手机充电
            hotel.charge();
        }
    }
    

    打印出以下结果: 使用两项圆头的插孔供电
    6. 上面的Hotel类,DBSocket类,DBSocketInterface接口都是不可变的(由德国的客户提供),如果我想使用这一套API,那么只能自己写代码解决。
    下面是国标接口和中国插座的代码。
    国标接口:

    /**
     * 国标接口
     */
    public interface  GBSocketInterface {
        /**
         * 这个方法的名字叫做:使用三项扁头的插口供电
         */
        void powerWithThreeFlat();
    }
    中国插座实现国标接口:
    /**
     * 中国插座
     */
    public class  GBSocket implements
    GBSocketInterface{
        public void  powerWithThreeFlat() {
            System.out.println("使用三项扁头插孔供电");
        }
    }
    

    7.下面给出适配器类的实现:

    public class  SocketAdapter 
            implements DBSocketInterface{   //实现旧接口
     
        //组合新接口
        private GBSocketInterface gbSocket;
         
        /**
         * 在创建适配器对象时,必须传入一个新街口的实现类
         * @param gbSocket
         */
        public SocketAdapter(GBSocketInterface gbSocket) {
            this.gbSocket = gbSocket;
        }
        /**
         * 将对就接口的调用适配到新接口
         */
        @Override
        public void  powerWithTwoRound() {
            gbSocket.powerWithThreeFlat();
        }
    }
    

    8.测试代码:

    public class  TestAdapter {
        public static  void  main(String[] args) {
            GBSocketInterface gbSocket = new GBSocket();
            Hotel hotel = new Hotel();
            SocketAdapter socketAdapter = new SocketAdapter(gbSocket);
            hotel.setSocket(socketAdapter);
            hotel.charge();
        }
    }
    

    打印出以下结果:
    使用两项圆头的插孔供电

    四 、实验结果
    测试结果1:
    在这里插入图片描述

    适配器测试结果:
    在这里插入图片描述

    适配器模式将一个类的接口转换成客户期望的另一个接口,让原本不兼容的接口可以合作无间。
    这个适配器必须满足以下条件:
    1,必须符合德国标准的接口,否则的话还是没办法插到德国插座中。
    2,,在调用上面实现的德标接口进行充电时,提供一种机制,将这个调用转到对国标接口的调用。

    这就要求:

    1,适配器必须实现原有的旧的接口。
    2,适配器对象中持有对新接口的引用,当调用旧接口时,将这个调用委托给实现新接口的对象来处理,也就是在适配器对象中组合一个新接口。

    展开全文
  • 软件设计模式之组合模式实验 、实验目的 掌握软件设计模式中的组合模式,能够用组合模式编写程序,解决实际问题。 二、实验内容与要求 内容:以学校的部门结构为场景,用组合模式进行模拟,程序设计语言可自由选择...

    软件设计模式之组合模式实验

    一、实验目的

    掌握软件设计模式中的组合模式,能够用组合模式编写程序,解决实际问题。

    二、实验内容与要求

    内容:以学校的部门结构为场景,用组合模式进行模拟,程序设计语言可自由选择。
    要求:需要用“文字+代码+截图”的形式对实验的主要代码和运行结果进行展示和描述。

    三、实验方法

    需求:一个学校包含多个学院,一个学院包含多个部门,部门是最下面一级,不能包含其他子节点,即部门是叶子节点,我们需要展示学校的整个组织架构树结构;

    1. 抽象构建类
    package com.combined.java;
    /**
     * 
     * @Description
     * @author ChuanShun.Wang   Email:2045064682@qq.com
     * @version
     * @date 2020年3月24日下午8:43:30
     *
     */
    public abstract class SchoolSectorStructure{
        private String name;
        public SchoolSectorStructure (String name) {
            this.name = name;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        protected void add(SchoolSectorStructure component) {
        }
        protected void delete(SchoolSectorStructure component) {
        }
        public abstract void print();
    }
    
    1. 子容器类:学校类
    package com.combined.java;
    import java.util.ArrayList;
    import java.util.List;
    public class School extends SchoolSectorStructure {
        private List< SchoolSectorStructure > components = new ArrayList<>();
        public School(String name) {
            super(name);
        }
        @Override
        protected void add(SchoolSectorStructure component) {
            components.add(component);
        }
        @Override
        protected void delete(SchoolSectorStructure component) {
            components.remove(component);
        }
        //输出学校里面的所有学院
        @Override
        public void print() {
            for (SchoolSectorStructure component : components) {
                component.print();
            }
        }
    }
    
    1. 子容器:学院类
    package com.combined.java;
    import java.util.ArrayList;
    import java.util.List;
    public class College extends SchoolSectorStructure {
        /**
         * 存在部门信息
         */
        private List< SchoolSectorStructure > components = new ArrayList<>();
     
        public College(String name) {
            super(name);
        }
        @Override
        protected void add(SchoolSectorStructure component) {
            components.add(component);
        }
        @Override
        protected void delete(SchoolSectorStructure component) {
            components.remove(component);
        }
        @Override
        public void print() {
            for (SchoolSectorStructure t : components) {
                t.print();
            }
        }
    }
    

    4.叶子节点:部门类

    package com.combined.java;
    public class Department extends SchoolSectorStructure {
        public Department(String name) {
            super(name);
        }
        @Override
        protected void add(SchoolSectorStructure component) {
            System.out.println("不支持该方法...");
        }
        @Override
        protected void delete(SchoolSectorStructure component) {
            System.out.println("不支持该方法...");
        }
        @Override
        public void print() {
            System.out.println(getName());
        }
    }
    

    5.客户端类

    package com.combined.java;
    public class Client {
        public static void main(String[] args) {
            //学校
            SchoolSectorStructure university = new School("信阳师范学院"); 
            //学院里面添加多个部门
            SchoolSectorStructure college1 = new College("计算机学院");
            college1.add(new Department("计算机与信息技术专业"));
            college1.add(new Department("软件工程专业"));
     
            SchoolSectorStructure college2 = new College("数学院");
            college2.add(new Department("应用数学专业"));
            college2.add(new Department("统计学专业"));
     
            //学校里面添加多个学院
            university.add(college1);
            university.add(college2);
     
            System.out.println("====" + university.getName() + "====");
            university.print();
            System.out.println("====" + college1.getName() + "====");
            college1.print();
            System.out.println("====" + college2.getName() + "====");
            college2.print();
        }
    }
    

    四 、实验结果

    1. 结果展示
      在这里插入图片描述

    2. 客户端使用的时候不需要区分当前是子容器对象还是叶子节点,都采用一致的方式调用,这样极大地方便客户端的调用。

    3. 增加新的子容器节点和叶子节点都挺方便,不需要对原有代码进行改造,符合开闭原则。

    4. 通过叶子节点和子容器节点的递归组合可以形成复杂的树形结构数据,但对于树形结构的控制却很简单。

    5. 如果叶子节点和子容器之间差异比较大,那么不太适合使用组合模式。

    展开全文
  • 简单工厂模式班级:软件工程1班 姓名:张雨 学号:2014416558实验目的:简单工厂设计模式应用二、实验内容:题目():使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回个Man对象,如果...

    简单工厂模式

    班级:软件工程1班 姓名:张雨 学号:2014416558

    一、实验目的:

    简单工厂设计模式应用

    二、实验内容:

    题目(一):

    使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Women对象,用Java语言实现该场景。现需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

    解答:

    (1)通过分析,画出的实例类图如下所示:

    f209c853c3b8775ee94cf9329e8f6517.png

    (2)实例代码及解释

    ①抽象产品类Person

    public interface Person

    {

    Public void make();

    }

    ②具体产品类Man

    Public class Man implements Person

    {

    Public void make()

    {

    System.out.println(“制造一个男人”);

    }

    }

    ③具体产品类Woman

    Public class Women implements Person

    {

    Public void make()

    {

    System.out.println(“制造一个女人”);

    }

    }

    ④具体产品类Robot

    Public class Robot implements Person

    {

    Public void make()

    {

    System.out.println(“制造一个机器人”);

    }

    }

    ⑤工厂类Nvwa

    Public class Nvwa

    {

    Public static Person makePerson(String sex)

    {

    If(sex.equalsIgnoreCase(“M”))

    {

    Return new Man();

    }

    If(sex.equalsIgnoreCase(“W”))

    {

    Return new Woman();

    }

    If(sex.equalsIgnoreCase(“R”))

    {

    Return new Robot();

    }

    Else

    {

    Return null;

    }

    }

    }

    题目(二):

    自学Java密码技术,使用其中的类对字符串“Hello,design pattern”进行加密,要求使用对称加密算法TripleDES,理解其中密钥生成器(KeyGenerator)和密码器(Cipher)的创建和使用。

    解答:

    代码如下:

    import java.security.InvalidKeyException;

    import java.security.NoSuchAlgorithmException;

    import java.security.Security;

    import javax.crypto.BadPaddingException;

    import javax.crypto.Cipher;

    import javax.crypto.IllegalBlockSizeException;

    import javax.crypto.KeyGenerator;

    import javax.crypto.NoSuchPaddingException;

    import javax.crypto.SecretKey;

    public class EncrypDES3

    {

    // KeyGenerator 提供对称密钥生成器的功能,支持各种算法

    private KeyGenerator keygen;

    // SecretKey 负责保存对称密钥

    private SecretKey deskey;

    // Cipher负责完成加密或解密工作

    private Cipher c;

    // 该字节数组负责保存加密的结果

    private byte[] cipherByte;

    public EncrypDES3() throws NoSuchAlgorithmException, NoSuchPaddingException

    {

    Security.addProvider(new com.sun.crypto.provider.SunJCE());

    // 实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)

    keygen = KeyGenerator.getInstance("DESede");

    // 生成密钥

    deskey = keygen.generateKey();

    // 生成Cipher对象,指定其支持的DES算法

    c = Cipher.getInstance("DESede");

    }

    /**

    * 对字符串加密

    *

    *@param str

    *@return

    *@throws InvalidKeyException

    *@throws IllegalBlockSizeException

    *@throws BadPaddingException

    */

    public byte[] Encrytor(String str) throws InvalidKeyException,

    IllegalBlockSizeException, BadPaddingException

    {

    // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式

    c.init(Cipher.ENCRYPT_MODE, deskey);

    byte[] src = str.getBytes();

    // 加密,结果保存进cipherByte

    cipherByte = c.doFinal(src);

    return cipherByte;

    }

    /**

    * 对字符串解密

    *

    *@param buff

    *@return

    *@throws InvalidKeyException

    *@throws IllegalBlockSizeException

    *@throws BadPaddingException

    */

    public byte[] Decryptor(byte[] buff) throws InvalidKeyException,

    IllegalBlockSizeException, BadPaddingException

    {

    // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式

    c.init(Cipher.DECRYPT_MODE, deskey);

    cipherByte = c.doFinal(buff);

    return cipherByte;

    }

    /**

    *@param args

    *@throws NoSuchPaddingException

    *@throws NoSuchAlgorithmException

    *@throws BadPaddingException

    *@throws IllegalBlockSizeException

    *@throws InvalidKeyException

    */

    public static void main(String[] args) throws Exception

    {

    EncrypDES3 des = new EncrypDES3();

    String msg ="Hello,design pattern";

    byte[] encontent = des.Encrytor(msg);

    byte[] decontent = des.Decryptor(encontent);

    System.out.println("明文是:" + msg);

    System.out.println("加密后:" + new String(encontent));

    System.out.println("解密后:" + new String(decontent));

    }

    }

    三、实验分析:

    通过这次实验,我对简单工厂模式有了更深的理解,能够使用简单工厂模式解决简单的问题,对以前学过的Java有了印象,同时对UML类图的设计有了进一步的理解。

    希望通过以后的实验能够对Java有更好的掌握,同时对设计模式有更深的理解。

    展开全文
  • 软件设计模式之享元模式实验 、实验目的 掌握软件设计模式中的组合模式,能够用组合模式编写程序,解决实际问题。 二、实验内容与要求 内容:以学校的部门结构为场景,用组合模式进行模拟,程序设计语言可自由选择...
  • 软件设计模式之中介者模式实验 、实验目的 掌握软件设计模式中的中介者模式,能够用中介者模式编写程序,解决实际问题。 二、实验内容与要求 内容:有个租房中介为房主和租赁人提供租房服务,请用中介者模式对租房...
  • 软件设计模式之观察者模式实验 、实验目的 掌握软件设计模式中的观察者模式,能够用观察者模式编写程序,解决实际问题。 二、实验内容与要求 内容:在一家拍卖行,有三个竞拍者参加竞拍,拍卖过程中,拍卖者每报出...
  • 软件设计模式之责任链模式实验 、实验目的 掌握软件责任链模式中的命令模式,能够用责任链模式编写程序,解决实际问题。 二、实验内容与要求 内容:某小学老师指定班里的三位学生收寒假作业,三位学生分别负责收...
  • 1. 运用工厂模式设计,通过使用个共同的运算类接口Operator,指向创建的AddOperator、SubOperator、MulOperator和DivOperator,即加减乘除这四个对象,通过运算工厂OperatorFactory获取运算类。 2.实验代码如下:...
  • 实验四 桥接模式实验一.实验目的二.实验内容三.实验过程、一、 模式定义二、 模式结构三、 模式实现四.调试和运行结果五.实验总结 一.实验目的 1)初步了解和掌握桥接模式(Bridge)的类图结构,以及主要的...
  • 通常客户端使用这个类是通过new个AppConfig的实例来得到个操作配置文件内容的对象。如果在系统运行中,有很多地方都需要使用配置文件的内容,系统中会同时存在多份配置文件的内容,这会严重浪费内存资源。 事实...
  • 云南大学软件学院设计模式实验报告,总共四次实验,第次:策略者模式 第二次:装饰者模式 第三次:抽象工厂模式 第四次:命令模式,包括四次实验每个模式的UML图,仅供学弟学妹们参考。
  • 实验内容和要求】 有个OEM制造商代理做HP...利用工厂模式改善设计,用JAVA语言实现 (或C#控制台应用程序实现)该OEM制造商的工厂模式。绘制该模式的UML图。 实验目的: 1) 掌握工厂模式(Factory)的...
  • 、能播放各种声音的软件产品(理解开-闭原则(Open-Closed Principle,OCP–对扩展开放-而对修改关闭)。写java文件、编译java文件、执行class文件。 Application public class Application { public static void ...
  • 在熟悉策略模式相关理论知识的基础上,使用策略模式实现个小游戏。 2.装饰者模式的运用:装饰者模式动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。在熟悉装饰者模式相关理论.....
  • java设计模式 实验一-简单工厂模式

    千次阅读 2016-09-23 23:20:07
    简单工厂设计模式应用 二、实验内容: 题目(): 使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回个Man对象,如果传入参数W,则返回个Women对象,用Java语言实现该场景。现需要...
  • 软件公司要开发一套CRM系统,其中包含个客户信息管理模块,所设计的“客户信息管理窗口”界面效果图如下图所示: 用JAVA语言实现(C#控制台应用程序实现)该模式。绘制该模式的UML图。 实验目的: 1)...
  • 实验内容 1.跨平台视频播放器 如果需要开发个跨平台视频播放器,可以在不同操作系统平台...现使用桥接模式设计该播放器(教材P179)。 public abstract class Form { public abstract void playForm(Str...
  • 实验内容和要求】 在操作系统中,打印池(Print ...现使用单例模式来模拟实现打印池的设计。用JAVA语言实现(C#控制台应用程序实现)该模式。绘制该模式的UML图。 实验目的: 1) 掌握单例模式(Singleton...
  • 实验项目:面向对象设计原则实验 (1)实验目的与原理 ①深入理解和掌握面向对象设计原则。 ②能运用面向对象设计原则对系统进行重构。 ③能绘制系统结构图(类图) (2)实验内容与步骤 ①某绘图软件提供了多种...
  • 实验内容和要求】 文件浏览 文件有不同类型,不同类型的文件其浏览方式有所区别,如文本...利用组合者模式设计,用JAVA语言实现 (或C#控制台应用程序实现)。绘制该模式的UML图。 实验目的: 1) 掌握组合模...
  • 实验内容和要求】 加密适配器 某系统需要提供个加密模块,将用户信息(如密码等机密信息)加密之后再存储在数据库中,系统已经定义好了数据库操作类。为了提高开发效率,现需要重用已有的加密算法,这些算法...
  • 实验内容和要求】 麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡...实验目的: 1) 掌握抽象工厂模式(Abstract Factory)的特点 2) 分析具体问题,使用抽象工厂模式进行设计。 二、实验环境: ...
  • 软件公司要开发个可应用于多个软件的文件加密模块,该模块可以对文件中的数据进行加密并将加密之后的数据存储在个新文件中,具体的流程包括3个部分,分别是读取源文件、加密、保存加密之后的文件,其中,读取...
  • 实验内容和要求】 实例:KFC套餐 建造者模式可以用于描述KFC如何创建套餐:套餐是个复杂对象,它一般包含主食(如...利用建造者模式设计,用JAVA语言实现 (或C#控制台应用程序实现)。绘制该模式的UML图。 ...
  • 软件公司要开发个跨平台图像浏览系统,要求该系统能够显示BMP、JPG、GIF、PNG等多种格式的文件,并且能够在Windows、Linux、UNIX等多个操作系统上运行。系统首先将各种格式的文件解析为像素矩阵(Matrix),然后将...
  • 软件公司为某商场开发了一套销售管理系统,在对该系统进行分析和设计时,开发人员发现经常需要对系统中的商品数据、客户数据等进行遍历,为了复用这些遍历代码,开发人员设计个抽象的数据集合类...
  • 实验内容和要求】 开发人员为公司内部OA系统开发了个桌面版应用程序,该应用程序为用户提供了系列自定义功能键,用户可以通过这些功能键来实现一些快捷操作。为了让用户能够灵活地进行功能键的设置,开发人员...
  • 实验内容和要求】 某公司OA系统中包含个员工信息管理子系统,该公司员工包括正式员工和临时工,每周人力资源部和财务部等部门需要对员工数据进行汇总,汇总数据包括员工工作时间、员工工资等。该公司基本制度...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 654
精华内容 261
关键字:

软件设计模式实验一