Java---设计模式app小软件汇总应用(3)

简介: Java---设计模式app小软件汇总应用(3)

实现类UserEbo :

package cn.hncu.app.business.impl;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.dao.dao.UserDAO;
import cn.hncu.app.dao.factory.UserDaoFactory;
import cn.hncu.app.vo.User;
public class UserEbo implements UserEbi{
    @Override
    public boolean addUser(User user) {
        UserDAO userDao = UserDaoFactory.getUserDAO();
        return userDao.addUser(user);
    }
    @Override
    public Object[] getAllUser() {
        UserDAO userDao = UserDaoFactory.getUserDAO();
        return userDao.getAllUsers();
    }
}


表现层:

UserAddPanel 类:

/*
 * UserAddPanel.java
 *
 * Created on __DATE__, __TIME__
 */
package cn.hncu.app.ui;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.business.factory.UserEbiFactory;
import cn.hncu.app.vo.User;
/**
 *
 * @author  __USER__
 */
public class UserAddPanel extends javax.swing.JPanel {
    private JFrame mainFrame = null;
    /** Creates new form UserAddPanel */
    public UserAddPanel(JFrame mainFrame) {
        this.mainFrame = mainFrame;
        initComponents();
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jButton1 = new javax.swing.JButton();
        tfdAge = new javax.swing.JTextField();
        tfdName = new javax.swing.JTextField();
        setMinimumSize(new java.awt.Dimension(800, 600));
        setLayout(null);
        jLabel1.setText("\u5e74\u9f84\uff1a");
        add(jLabel1);
        jLabel1.setBounds(170, 200, 50, 40);
        jLabel2.setText("\u59d3\u540d\uff1a");
        add(jLabel2);
        jLabel2.setBounds(170, 120, 50, 40);
        jButton1.setText("\u6dfb\u52a0");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        add(jButton1);
        jButton1.setBounds(240, 330, 170, 60);
        add(tfdAge);
        tfdAge.setBounds(210, 210, 170, 30);
        add(tfdName);
        tfdName.setBounds(210, 130, 170, 30);
    }// </editor-fold>
    //GEN-END:initComponents
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        //1收集参数 
        String name = tfdName.getText();
        String strAge = tfdAge.getText();
        int age = Integer.parseInt(strAge);//简单的转换成一个整型数了。
        //2组织参数
        //User user = new User(name, age);
        User user = new User();
        user.setAge(age);
        user.setName(name);
        //3调用逻辑层---通过接口
        UserEbi userEbi = UserEbiFactory.getUserEbi();
        boolean isSuccess=userEbi.addUser(user);
        //4导向不同页面
        if(isSuccess){
            JOptionPane.showMessageDialog(this, "恭喜,添加成功!");
            this.mainFrame.setContentPane(new UserListPanel(mainFrame));
            this.mainFrame.validate();
        }else{
            JOptionPane.showMessageDialog(this, "祝贺,添加失败!");
        }
    }
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JTextField tfdAge;
    private javax.swing.JTextField tfdName;
    // End of variables declaration//GEN-END:variables
}


UserListPanel 类:

/*
 * UserListPanel.java
 *
 * Created on __DATE__, __TIME__
 */
package cn.hncu.app.ui;
import javax.swing.JFrame;
import cn.hncu.app.business.ebi.UserEbi;
import cn.hncu.app.business.factory.UserEbiFactory;
/**
 *
 * @author  __USER__
 */
public class UserListPanel extends javax.swing.JPanel {
    private JFrame mainFrame = null;
    /** Creates new form UserListPanel */
    public UserListPanel(JFrame mainFrame) {
        this.mainFrame = mainFrame;
        initComponents();
        myInitDatas();
    }
    private void myInitDatas() {
        UserEbi userEbi = UserEbiFactory.getUserEbi();
        Object[] objs = userEbi.getAllUser();
        this.listUsers.setListData(objs);
    }
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        listUsers = new javax.swing.JList();
        jLabel1 = new javax.swing.JLabel();
        setMinimumSize(new java.awt.Dimension(800, 600));
        setLayout(null);
        listUsers.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "" };
            public int getSize() {
                return strings.length;
            }
            public Object getElementAt(int i) {
                return strings[i];
            }
        });
        jScrollPane1.setViewportView(listUsers);
        add(jScrollPane1);
        jScrollPane1.setBounds(170, 170, 410, 210);
        jLabel1.setText("\u4fe1\u606f");
        add(jLabel1);
        jLabel1.setBounds(350, 90, 70, 50);
    }// </editor-fold>
    //GEN-END:initComponents
    //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JList listUsers;
    // End of variables declaration//GEN-END:variables
}
目录
相关文章
|
5天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
5天前
|
设计模式 算法 测试技术
PHP中的设计模式:策略模式的应用与实践
在软件开发的浩瀚海洋中,设计模式如同灯塔,指引着开发者们避开重复造轮子的暗礁,驶向高效、可维护的代码彼岸。今天,我们将聚焦于PHP领域中的一种重要设计模式——策略模式,探讨其原理、应用及最佳实践,揭示如何通过策略模式赋予PHP应用灵活多变的业务逻辑处理能力,让代码之美在策略的变换中熠熠生辉。
|
4天前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
6天前
|
设计模式 算法 PHP
PHP中的设计模式:策略模式的深入探索与实践在软件开发的广袤天地中,PHP以其独特的魅力和强大的功能,成为无数开发者手中的得力工具。而在这条充满挑战与机遇的征途上,设计模式犹如一盏明灯,指引着我们穿越代码的迷雾,编写出更加高效、灵活且易于维护的程序。今天,就让我们聚焦于设计模式中的璀璨明珠——策略模式,深入探讨其在PHP中的实现方法及其实际应用价值。
策略模式,这一设计模式的核心在于它为软件设计带来了一种全新的视角和方法。它允许我们在运行时根据不同情况选择最适合的解决方案,从而极大地提高了程序的灵活性和可扩展性。在PHP这门广泛应用的编程语言中,策略模式同样大放异彩,为开发者们提供了丰富的创作空间。本文将从策略模式的基本概念入手,逐步深入到PHP中的实现细节,并通过一个具体的实例来展示其在实际项目中的应用效果。我们还将探讨策略模式的优势以及在实际应用中可能遇到的挑战和解决方案,为PHP开发者提供一份宝贵的参考。
|
8天前
|
存储 设计模式 安全
Java设计模式-备忘录模式(23)
Java设计模式-备忘录模式(23)
|
8天前
|
设计模式 自然语言处理 算法
PHP中的设计模式:桥接模式的深入探索与应用
在PHP开发中,理解并运用设计模式是提升代码质量与可维护性的关键。本文聚焦于桥接模式——一种结构型设计模式,它通过封装一个抽象的接口,将实现与抽象分离,从而使得它们可以独立变化。不同于传统摘要的概述式表述,本文将以故事化的情境引入,逐步解析桥接模式的精髓,通过PHP代码示例详细展示其在实际项目中的应用,旨在为读者提供一个既深刻又易于理解的学习体验。
12 1
|
8天前
|
设计模式 存储 缓存
Java设计模式 - 解释器模式(24)
Java设计模式 - 解释器模式(24)
|
8天前
|
设计模式 安全 Java
Java设计模式-迭代器模式(21)
Java设计模式-迭代器模式(21)
|
8天前
|
设计模式 存储 算法
PHP中的设计模式:策略模式的深入解析与应用在软件开发的浩瀚海洋中,PHP以其独特的魅力和强大的功能吸引了无数开发者。作为一门历史悠久且广泛应用的编程语言,PHP不仅拥有丰富的内置函数和扩展库,还支持面向对象编程(OOP),为开发者提供了灵活而强大的工具集。在PHP的众多特性中,设计模式的应用尤为引人注目,它们如同精雕细琢的宝石,镶嵌在代码的肌理之中,让程序更加优雅、高效且易于维护。今天,我们就来深入探讨PHP中使用频率颇高的一种设计模式——策略模式。
本文旨在深入探讨PHP中的策略模式,从定义到实现,再到应用场景,全面剖析其在PHP编程中的应用价值。策略模式作为一种行为型设计模式,允许在运行时根据不同情况选择不同的算法或行为,极大地提高了代码的灵活性和可维护性。通过实例分析,本文将展示如何在PHP项目中有效利用策略模式来解决实际问题,并提升代码质量。
|
8天前
|
设计模式 缓存 算法
Java设计模式-访问者模式(22)
Java设计模式-访问者模式(22)
下一篇
无影云桌面