首页 > 其他分享 >单一职责原则

单一职责原则

时间:2024-12-29 20:19:07浏览次数:1  
标签:JFrame UserDAO 职责 原则 frame 单一 import public String

登录模块在实际项目开发中很常见,请按照教材28页(PPT49页)利用单一职责原则重构后的类图实现这一模块。

 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
// MainClass is responsible for starting the system.public class MainClass {    

public static void main(String[] args) {        

JFrame frame = new JFrame("Login Form");
        LoginForm loginForm = new LoginForm(frame);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 200);
        frame.setVisible(true);
    }

}

// LoginForm is responsible for displaying the login form and handling events.

public class LoginForm extends JFrame {    

private UserDAO userDAO;
    public LoginForm(JFrame frame) {        

super("Login Form");
        userDAO = new UserDAO();
        // Add UI components and event handlers here

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 200);
        setVisible(true);
    }

    // Event handler methods go here}

// UserDAO encapsulates all operations related to the users table.

public class UserDAO {    

private DBUtil dbUtil;
    public UserDAO() {        

dbUtil = new DBUtil();
    }

    public boolean findUser(String userName, String userPassword) throws Exception {        Connection connection = dbUtil.getConnection();

        PreparedStatement statement = connection.prepareStatement(            "SELECT * FROM Users WHERE username = ? AND password = ?");
        statement.setString(1, userName);
        statement.setString(2, userPassword);

        ResultSet resultSet = statement.executeQuery();
        return resultSet.next();
    }

}

// DBUtil provides a connection to the database.

public class DBUtil {    

private final String URL = "jdbc:mysql://localhost:3306/mydatabase";
    private final String USER = "root";
    private final String PASSWORD = "20223959";
    public Connection getConnection() throws Exception {        Class.forName("com.mysql.jdbc.Driver");
        return DriverManager.getConnection(URL, USER, PASSWORD);
    }

}

标签:JFrame,UserDAO,职责,原则,frame,单一,import,public,String
From: https://www.cnblogs.com/pinganxile/p/18639497

相关文章

  • 你觉得领导的职责是什么?
    在前端开发领域,领导的职责涉及多个方面,包括团队管理、项目规划、技术决策、沟通协调以及员工发展等。以下是对这些职责的详细解释:团队管理:组建和维护高效、协作的前端开发团队,确保团队具备必要的技术能力和资源。设定团队目标,并监控进度,确保团队按时、高质量地完成项目。负......
  • 软件设计原则
    源码设计原则第一章、为什么学习设计模式一、由着性子写代码之前,初入职场,很简单的一个功能,花了好久才写完,但是令我崩溃的是,经过领导的code-review后直接将我的代码推翻,来来回回,不停修改,知道“领导他”满意才行。很多时候,我甚至开始骂领导全家,代码能用不就行了,跑起来不......
  • 《LLM入门教程》大模型教程笔记5:一、面向开发者的提示工程——2. 提示原则——原则二:
    项目地址:llm-cookbook教程在线阅读:面向开发者的LLM入门教程openAIPython库版本:1.52.1文章目录第二章提示原则二、原则二给模型时间去思考2.1指定完成任务所需的步骤复杂任务需求代码示例(原)代码示例(基于原代码修改)存在问题改进prompt(进一步告知大模型需要的输出格......
  • 如何面对领导强加给你的职责外的工作?
    面对领导强加给你的职责外的工作,尤其是作为前端开发人员,确实是一个需要妥善处理的问题。以下是一些建议,帮助你应对这种情况:明确职责边界:首先,明确自己的职责范围和工作内容,这有助于你判断领导分配的任务是否超出了你的职责边界。如果确实超出了你的职责,可以与领导进行沟通,明......
  • 马斯克的高效秘诀:两分钟原则,帮你从此告别拖延!
    当你想到埃隆·马斯克(ElonMusk),第一反应是什么?特斯拉?SpaceX?还是他那些天马行空的未来构想?作为全球顶尖的科技领袖,马斯克以惊人的速度同时管理多个巨型项目,每天的时间安排可以说精确到秒。到底是什么让他能如此高效?他所运用的时间管理法则之一,就是简单却强大的“两分钟原则”。虽......
  • 常见设计原则
    常用设计原则目录单一职责原则开闭原则里氏替换原则接口隔离原则依赖倒置原则迪米特法则单一职责原则单一职责原则(SingleResponsibilityPrinciple,SRP)定义:一个类应该只有一个引起它变化的原因。即一个类应该只负责一项职责。解释:这意味着一个类应该专注于一个......
  • 最短路径优先原则
    扩展配置:负载均衡:当路由器访问同一个目标且具有多条开销相似的路径(传输速度相似)时,可以让设备将流量拆分后延多条路径同时发送,已达到叠加带宽的作用。         人话:在传输数据包时,将多个数据包分多条路径传输  环回接口:路由器配置的虚拟接口,一般用于虚拟......
  • 里氏替换原则
    基本概念任何父类出现的地方,子类都可以替代语法表现:父类容器装子类对象,因为子类对象包含了父类所有的内容方便进行对象存储和管理classGameObject{}classPlayer:GameObject{publicvoidPlayerAtk(){Console.WriteLine("玩家攻击")}}clas......
  • 【智能设计模式:AI时代的依赖倒转原则探索】
    ......
  • SOLID原则
    ThisPrincipleisthefoundationforDesignpatternsinSoftwareSystem.Foracheivingflexibilityandmakingcodemodularitishighlyrecommendedthatweabidebytheseprinciples.Eachletterinthewordhasdifferentmeaningtoitwhichisasfollows:......