软件设计与体系结构编程题汇总
创始人
2024-02-22 04:33:39
0
  1. 现在需要开发一款游戏软件,请以单例模式来设计其中的 Boss 角色。角色的属性和动作可以任意设计。 要求:该 Boss 类可以在多线程中使用。( 8 分)
    在这里插入图片描述
Public class Boss{Private static Boss instance; //(2 分)Private Boss(){ }//(2 分)Public static Boss getInstance(){ // ( 2 分)If(instance == null){Synchronized(Boss.Class){ // ( synchronized 关键字, 2 分)If(instance == null)Instance = new Boss();}}return instance;}
}

或者

Public class Boss{Private static Boss instance = new Boss();//(4 分)Private Boss(){}// ( 2 分)Public static Boss getInstance(){//2 分Return instance;}
}
  1. 一个农场公司,专门负责培育各种水果,有葡萄,草莓和苹果,请使用工厂方法,编写工厂类和主程序,并在主程序中来完成草莓生长状态的描述。( 8 分)

    在这里插入图片描述

    Public interface Factory{Fruit build();
    }
    Public class AppleFactory implements Factory{Public Fruit build(){Return new Apple();}
    }
    Public class GrapeFactory implements Factory{Public Fruit build(){Return new Grape();}
    }
    Public class StrawberryFactory implements Factory{Public Fruit build(){Return new Strawberry();}
    }
    Public class MainUI{ Public static void main(string[] str){Factory fac = new StrawberryFactory();Fruit ft = fac.build();ft.plant();Ft.grow();Ft.harvest();}
    }
    
  2. 给定如图所示的树形结构,请应用组合模式,在客户端完成数据的展示。具体要求如下:
    绘制组合模式的类图。( 4 分)
    编写简单元素和复杂元素的代码。( 4 分)
    在这里插入图片描述
    在客户端构造出树形数据并输出。( 4 分)
    提示:程序运行后,输出信息应为

    Root
    Leaf A
    Comp B
    Leaf BX
    Leaf BY
    Leaf C
    
    1. 类图,类名不限,但必须将抽象的概念,以及Composite和Component之间的关系用正确的连线表示。(4分)
      在这里插入图片描述
      2) 简单元素、复杂元素(4分):
    class Leaf implements Component{String name;public Leaf(String name){this.name = name; }public void display(){System.out.println( name);}public void add(Component c){}public void remove(Component c){}
    }  
    class Composite implements Component{String name;ArrayList list = new ArrayList();public Composite(String name){this.name = name; }public void display(){System.out.println(name);for(int i = 0 ; i < list.size() ;i ++){list.get(i).display();}  }public void add(Component c){list.add(c);  }public void remove(Component c){list.remove(c);}
    }
    

    客户端( 4 分):

    public class Test {public static void main(String[] args){Component root = new Composite("Root");root.add(new Leaf("Leaf A"));    Component comp = new Composite("Comp B");root.add(comp);    comp.add(new Leaf("Leaf BX"));comp.add(new Leaf("Leaf BY"));    root.add(new Leaf("Leaf C"));    root.display();    }}
    
  3. 迭代器模式: 提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标 (Cursor) 。
    在这里插入图片描述

CustomerManager 类
public   class   CustomerManager  {private  ArrayList  list  =  new  ArrayList();public   void  add(String str) {list .add(str);  }protected  ArrayList getList() {return   list ;  }public  Itertator getASItertator() {return   new  AscIterator( this );  }public  Itertator getCharItertator(String s) {return   new  CharIterator( this , s);  }}
Itertator 类
public   abstract   class   Itertator  
{   public   abstract   boolean  hasNext();public   abstract  String next();}
AscIterator 类
public   class   AscIterator   extends  Itertator {ArrayList  list  =  new  ArrayList();Iterator   iter ;public  AscIterator(CustomerManager cm) {ArrayList ls = cm.getList();for  (String s : ls) {list .add(s);Collections. sort ( list );iter  =  list .iterator();    }  }public   boolean  hasNext() {return   iter .hasNext();  }public  String next() {return  (String)  iter .next();  }}
CharIterator 类
public   class   CharIterator   extends  Itertator {ArrayList  list  =  new  ArrayList();Iterator   iter ;public  CharIterator(CustomerManager cm, String str) {ArrayList ls = cm.getList();for  (String s : ls) {if  (s.startsWith(str)) {list .add(s);      }iter  =  list .iterator();    }  }public   boolean  hasNext() {return   iter .hasNext();}public  String next() {return  (String)  iter .next();  }}
主类
public   class  Client {public   static   void  main(String[] args) {CustomerManager cm= new  CustomerManager();cm.add( "zhangsan" );cm.add( "lisi" );cm.add( "brown" );cm.add( "alien" );Itertator iter;iter=cm.getCharItertator( "a" );while (iter.hasNext()){String str=iter.next();System. out .println(str);    }  }}

相关内容

热门资讯

“地沟油”贵过食用油?欧美为何... 2025年12月9日,美国联邦调查局发起跨州执法行动,逮捕了13名涉嫌系统性盗窃餐馆废弃食用油的华人...
十年欠款终结清 司法调解显温情 近日,吉林市龙潭区人民法院成功化解一起拖欠十余年的货款纠纷,通过耐心细致的司法调解,既为当事人挽回合...
宁夏银川原副市长郭柏春案开庭,... 2025年12月29日,宁夏回族自治区银川市原副市长郭柏春涉嫌挪用公款、滥用职权一案在银川市中级人民...
胜宏科技:公司重视舆情管理并采... 证券之星消息,胜宏科技(300476)12月30日在投资者关系平台上答复投资者关心的问题。 投资者:...
呼和浩特首部院前医疗急救服务条... 中新网内蒙古新闻12月30日电 (记者 张林虎)30日,记者从呼和浩特市卫健委了解到,《呼和浩特市院...
惠农政策进牧户 畜牧补贴暖民心 隆冬时节,哈密伊州区回城乡的畜牧养殖户们心里却暖意融融。随着哈密市支持畜牧业发展若干政策措施的精准落...
新宁物流与中国人保北京分公司纠... 12月30日,新宁物流(300013)发布公告,此前,公司全资子公司深圳新宁因一起保险代位求偿权纠纷...
每个月被告一千多次!绿地控股诉... 12月30日晚间,绿地控股(600606)发布公告,公司及控股子公司在2025年12月3日至12月2...
2025年度《财富管理与基金投... 10月22日,上海财经大学与东方证券联合开设的《财富管理与基金投资顾问》第四讲由东方证券研究所副所长...
聚焦金融“黑灰产”丨剑指金融“... 当下金融“黑灰产”有什么特点和危害?公安机关该如何应对?近日,《人民公安》杂志记者专访公安部经济犯罪...