当前位置: 首页 > news >正文

网站怎么做根目录专门发广告的app

网站怎么做根目录,专门发广告的app,做网站字体要求,单页网站 seo文章目录 一、概念二、生活中应用场景三、角色四、代码实现五、模版方法模式实现JDBC的操作1. 创建约束ORM逻辑的接口RowMapper2.创建封装了所有处理流程的抽象类JdbcTemplate3.创建实体对象Member类4.创建数据库操作类MemberDao5. 客户端测试代码 总结优点缺点 一、概念 属于… 文章目录 一、概念二、生活中应用场景三、角色四、代码实现五、模版方法模式实现JDBC的操作1. 创建约束ORM逻辑的接口RowMapper2.创建封装了所有处理流程的抽象类JdbcTemplate3.创建实体对象Member类4.创建数据库操作类MemberDao5. 客户端测试代码 总结优点缺点 一、概念 属于行为型设计模式本质抽象封装流程具体实现。也就是用抽象类将一个固定流程封装起来具体步骤由不同的子类实现。实现是通过类的继承。 二、生活中应用场景 炒菜洗锅——点火——热锅——上油——下原料——翻炒——放调料——出锅 三、角色 抽象模板AbstractClass):抽象模板列定义了一套算法框架/流程 具体实现ConcreteClass):具体实现类对算法框架/流程的某些步骤进行了实现。 四、代码实现 以在线课程为例 抽象模板AbstractCourse public abstract class AbstractCourse {public final void createCourse(){//1. 发布预习资料postPreResource();//2. 制作课件createPPT();//3. 直播授课liveVideo();//4. 上传课后资料postResource();//5. 布置作业postHomework();if(needCheckHomework()){checkHomework();}}/*** 检查作业*/protected abstract void checkHomework();//钩子方法/*** 判断是否需要检查作业*/protected boolean needCheckHomework(){return true;}protected void postHomework(){System.out.println(布置作业);}protected void postResource(){System.out.println(上传课后资料);}protected void liveVideo(){System.out.println(直播授课);}protected void createPPT(){System.out.println(制作课件);}protected void postPreResource(){System.out.println(发布预习资料);} }具体实现 Java课程实现类 public class JavaCourse extends AbstractCourse{private boolean needHomeworkfalse;public void setNeedHomework(boolean needHomework) {this.needHomework needHomework;}Overrideprotected void checkHomework() {System.out.println(检查Java作业);}Overrideprotected boolean needCheckHomework() {return super.needCheckHomework();} }Python课程实现类 public class PythonCourse extends AbstractCourse{Overrideprotected void checkHomework() {System.out.println(检查Python作业);} }客户端测试代码 public class Test {public static void main(String[] args) {System.out.println(架构师课程);JavaCourse javaCourse new JavaCourse();javaCourse.setNeedHomework(false);javaCourse.createCourse();System.out.println(Python课程);PythonCourse pythonCourse new PythonCourse();pythonCourse.createCourse();} }五、模版方法模式实现JDBC的操作 1. 创建约束ORM逻辑的接口RowMapper public interface RowMapperT {/*** 将 ResultSet 中的行映射为一个对象 T* param rs ResultSet 对象* param rowNum 行数* return 映射后的对象 T* throws Exception 抛出异常*/T mapRow(ResultSet rs, int rowNum) throws Exception; }2.创建封装了所有处理流程的抽象类JdbcTemplate public class JdbcTemplate {SuppressWarnings(all)private DataSource dataSource;public JdbcTemplate(DataSource dataSource) {this.dataSource dataSource;}public final List? executeQuery(String sql, RowMapper rowMapper, Object... values) {try {//1.获取连接Connection connthis.getConnection();//2.创建语句集PreparedStatement pstm this.createStatement(conn, sql);//3.执行语句集ResultSet rs this.executeQuery(pstm,values);//4.处理结果集List? resultthis.parseResultSet(rs,rowMapper);//5.关闭结果集rs.close();//6.关闭语句集pstm.close();//7.关闭连接conn.close();return result;} catch (Exception e) {e.printStackTrace();}return null;}private List? parseResultSet(ResultSet rs, RowMapper rowMapper) throws Exception {ListObject resultnew ArrayList();int rowNum0;while (rs.next()) {Object objrowMapper.mapRow(rs, rowNum);result.add(obj);}return result;}private ResultSet executeQuery(PreparedStatement pstm, Object[] values) throws SQLException {for (int i 0; i values.length; i) {pstm.setObject(i , values[i]);}return pstm.executeQuery();}private PreparedStatement createStatement(Connection conn, String sql) throws SQLException {return conn.prepareStatement(sql);}private Connection getConnection() throws SQLException {return this.dataSource.getConnection();} }3.创建实体对象Member类 public class Member {private String username;private String password;private String nickname;private int age;private String address;public String getUsername() {return username;}public void setUsername(String username) {this.username username;}public String getPassword() {return password;}public void setPassword(String password) {this.password password;}public String getNickname() {return nickname;}public void setNickname(String nickname) {this.nickname nickname;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getAddress() {return address;}public void setAddress(String address) {this.address address;} }4.创建数据库操作类MemberDao public class MemberDao extends JdbcTemplate {public MemberDao(DataSource dataSource) {super(dataSource);}public List? selectAll() {String sql select * from t_member;return super.executeQuery(sql, new RowMapperMember() {Overridepublic Member mapRow(ResultSet rs, int rowNum) throws Exception {Member member new Member();member.setUsername(username);member.setPassword(password);member.setAge(rs.getInt(age));member.setAddress(rs.getString(address));return member;}},null);} } 5. 客户端测试代码 public class Test {public static void main(String[] args) {MemberDao memberDao new MemberDao(null);List? resultmemberDao.selectAll();System.out.println(result);} }总结 优点 将相同处理逻辑封装到抽象父类中提高代码的复用性不同的代码放到子类中通过子类扩展增加新的行为提高代码的扩展性。 缺点 类数目的增加每一个抽象类都需要一个子类来实现这样导致类的个数增加增加了系统实现的复杂度继承关系的自身缺点如果父类添加新的抽象方法所有子类都要改一遍。
http://www.zqtcl.cn/news/169339/

相关文章:

  • 深圳做企业网站公司常用的网络营销方式
  • 建设网站公司怎么建站网站开发笔记
  • 网站网页建设论文惠州建设网站公司
  • 中介做网站的别打电话有没有教做健身餐的网站
  • 山东电力建设网站雷州市网站建设
  • 企业网站的意义公司网站建app
  • 网站设计模板免费国庆图片制作小程序
  • 包头焦点网站建设郑州包装设计公司
  • 建行官方网站首页做跨境电商亏死了
  • 河北智能网站建设平台卖链接的网站
  • 网站建设简单点的服装搭配网站建设策划书
  • 哪一个军事网站做的比较好今天第四针最新消息
  • 黄页网站推广app软件查企业公司用什么软件
  • 网站设计机构培训全自动网页制作系统源码
  • 外贸网站建设收益深圳建设厅官网
  • 跟网站开发有关的内容东莞市生态环境局
  • dw软件做的东西怎么在网站用网站备案抽查通过
  • 重庆建设集团网站首页wordpress主题inn
  • 对京东网站建设的总结湖北做网站的
  • 杭州网站开发后端招郑州工装定制
  • 网站搭建论文filetype ppt 网站建设
  • 个人做营利性质网站会怎么样如何引用网站上的资料做文献
  • 新网站制作市场泰安做网站哪家好
  • 常熟苏州网站建设flash如何制作网站
  • 电商网站都是用什么做的网站服务器维护方案
  • 简述企业网站建设的流程手机怎么自己做网页
  • 网站备案信息管理呼图壁网站建设
  • 网站建设学习资料开发一套软件需要多少钱
  • 大庆网站设计衡阳seo网站推广
  • 基层科普网站建设的现状自己做的网站怎样链接数据库