请教:初学模式,如何写这个uml的用例

发布于 2022-06-28 07:05:17 字数 131 浏览 9 评论 1

想在NameFactoryDemo中通过gui的输入来运用工厂。

在NameFactoryDemo中,
使用Namer?NameFactory?FirstFirst?LastFirst?

uml如图

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑梦风尘 2022-06-30 07:04:50

已经完成的练习

Namer.java

  1. public class Namer
  2. {
  3.         protected String last;
  4.         protected String first;
  5.         public String getFirst()
  6.         {
  7.                 return first;
  8.         }
  9.         public String getLast()
  10.         {
  11.                 return last;
  12.         }
  13. }

复制代码

LastFirst.java

  1. public class LastFirst extends Namer
  2. {
  3.         public LastFirst(String s)
  4.         {
  5.                 int i = s.indexOf(",");
  6.                 if ( i>;0 )
  7.                 {
  8.                         last = s.substring(0,i).trim();
  9.                         first = s.substring(i+1).trim();
  10.                 }
  11.                 else
  12.                 {
  13.                         last = s;
  14.                         first = "";
  15.                 }
  16.         }
  17. }

复制代码

FirstFirst.java

  1. public class FirstFirst extends Namer
  2. {
  3.         public FirstFirst(String s)
  4.         {
  5.                 int i = s.lastIndexOf(" ");
  6.                
  7.                 if ( i>;0 )
  8.                 {
  9.                         first = s.substring(0,i).trim();
  10.                         last = s.substring(i+1).trim();
  11.                 }
  12.                 else
  13.                 {
  14.                         first = "";
  15.                         last = s;
  16.                 }
  17.         }       
  18. }

复制代码

NameFactory.java

  1. public class NameFactory
  2. {
  3.         Namer namer;
  4.         public Namer getNamer(String entry)
  5.         {
  6.                 int i = entry.indexOf(",");
  7.                 if ( i>;0 )
  8.                 {
  9.                         return new LastFirst(entry);
  10.                 }
  11.                 else
  12.                 {
  13.                         return new FirstFirst(entry);
  14.                 }
  15.         }
  16. }

复制代码

//这个demo可能有些牵强,还请各位指点
NameFactoryDemo.java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. public class NameFactoryDemo extends JFrame implements ActionListener
  5. {
  6.         JLabel jl1=new JLabel("enter name"),
  7.                                 jl2=new JLabel("First Name"),
  8.                                 jl3=new JLabel("Last Name");
  9.         JTextField jtf1=new JTextField(30),
  10.                                 jtf2=new JTextField(20),
  11.                                 jtf3=new JTextField(20);
  12.         JButton jb1=new JButton("cumpute"),
  13.                         jb2=new JButton("clear");
  14.         public NameFactoryDemo()
  15.         {               
  16.                 jb1.addActionListener(this);
  17.                 jb2.addActionListener(this);
  18.                
  19.                 this.getContentPane().setLayout(new GridLayout(5,1));
  20.                 this.getContentPane().add(jl1);
  21.                 this.getContentPane().add(jtf1);
  22.                 JPanel jp1=new JPanel();
  23.                 jp1.add(jl2);
  24.                 jp1.add(jtf2);
  25.                 this.getContentPane().add(jp1);
  26.                 JPanel jp2=new JPanel();
  27.                 jp2.add(jl3);
  28.                 jp2.add(jtf3);
  29.                 this.getContentPane().add(jp2);
  30.                 JPanel jp3=new JPanel();
  31.                 jp3.add(jb1);
  32.                 jp3.add(jb2);
  33.                 this.getContentPane().add(jp3);
  34.                 setSize(500,200);
  35.                 show();
  36.         }
  37.         public void actionPerformed(ActionEvent ae)
  38.         {
  39.                 if(ae.getSource()==jb1)
  40.                 {
  41.                         if (jtf1.getText().trim().equals(""))
  42.                         {
  43.                                 jl1.setText("erro . enter your name !");
  44.                                 return ;
  45.                         }
  46.                         String s1=jtf1.getText().trim();
  47.                         NameFactory nf=new NameFactory();
  48.                         String s2=nf.getNamer(s1).getFirst();
  49.                         String s3=nf.getNamer(s1).getLast();
  50.                         jtf2.setText(s2);
  51.                         jtf3.setText(s3);
  52.                 }
  53.                 else if (ae.getSource()==jb2)
  54.                 {
  55.                         jtf1.setText("");
  56.                         jtf2.setText("");
  57.                         jtf3.setText("");
  58.                 }
  59.         }
  60.         public static void main(String[] args)
  61.         {
  62.                 new NameFactoryDemo();
  63.         }
  64. }

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文