从学习编写程序到编写项目我们发现了一个问题,在没有按照设计模式的编写程序的情况下,总感到非常迷茫,没有头绪,这个程序应该有哪些功能,不得而知,所做出来的小项目,乱成一锅粥。

所以我们必须理解学习设计模式

首先我们要知道8条设计原则:

1.面向接口编程

2.优先使用对象组合而非类继承

3.分层:

1.用户UI层:UI

2.逻辑层:business

3.数据层:dao

4.层间交互的基本原则

5.开闭原则

6.依赖性倒置原则

7.接口隔离

8.替换原则

一般一个功能模块我们将它分为

Dao:数据层

dao:dao数据层接口,四种抽象方法(增、删、改、查)

factory:dao数据层工厂,用于返回dao数据层实现类,构造函数设为private

impl:实现类,对外不可见,用于实现dao数据曾接口中的所有功能

business:逻辑层

ebi:逻辑层接口,将UI层收集的数据(值对象)传递给dao实现类方法的抽象方法

ebo:逻辑层实现类,实现ebi中方法

facto:逻辑层工厂,用于返回逻辑层ebo类对象给ui层

vo:值对象

UI:用户交互界面

各层通过接口和工厂的交互来进行功能的实现

设计步骤

第一步设计vo

第二部设计dao

第三部设计business

第四部设计ui

每层的设计步骤

第一步设计接口

第二部实现实现类

第三部完成工厂的封装功能

例如模拟实现用户姓名年龄存储的模块功能逻辑层代码:

ebi:

package cn.hncu.example2.UserMessage.bussiness.ebi;

import cn.hncu.example2.UserMessage.vo.UserVo;

public interface UserEbi {
public boolean creat(UserVo user);
}

ebo:

package cn.hncu.example2.UserMessage.bussiness.ebo;

import java.util.UUID;

import cn.hncu.example2.UserMessage.bussiness.ebi.UserEbi;
import cn.hncu.example2.UserMessage.dao.dao.UserDao;
import cn.hncu.example2.UserMessage.dao.factory.UserDaoFactory;
import cn.hncu.example2.UserMessage.vo.UserVo;

public class UserEbo implements UserEbi {

@Override
public boolean creat(UserVo user) {
String uuid = UUID.randomUUID().toString();
user.setUuid(uuid);
UserDao userd = UserDaoFactory.getUserDao();
return userd.creat(user);
}

}

factory:

package cn.hncu.example2.UserMessage.bussiness.factory;

import cn.hncu.example2.UserMessage.bussiness.ebi.UserEbi;
import cn.hncu.example2.UserMessage.bussiness.ebo.UserEbo;
import cn.hncu.example2.UserMessage.vo.UserVo;

public class UserBusifactory {
private UserBusifactory() {

}

public static UserEbi getUserEbi() {
return new UserEbo();
}
}

初步学习了设计模式从此对java的项目设计有了一定了解

用小本本记下来,避免以后忘记

学好java设计模式,编程不迷茫--java学习笔记相关推荐

  1. Daemon线程--《Java并发编程的艺术》学习笔记

    2019独角兽企业重金招聘Python工程师标准>>> daemon线程即守护线程 当一个JVM中不存在非Daemon线程时,JVM将会退出 也就是说当非Daemon线程都执行完毕时 ...

  2. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  3. 01 - Java并发编程与高并发解决方案笔记-基础篇

    01 - Java并发编程与高并发解决方案笔记-基础篇 基础篇很重要!很重要!很重要!!!一定要理解和认真思考. 01 - Java并发编程与高并发解决方案笔记-基础篇 1.课程准备 2.并发编程基础 ...

  4. Java转义工具类StringEscapeUtils的学习笔记

    Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...

  5. NVIDIA可编程推理加速器TensorRT学习笔记(二)——实操

    NVIDIA可编程推理加速器TensorRT学习笔记(二)--实操 ​ TensorRT 是 NVIDIA 自家的高性能推理库,其 Getting Started 列出了各资料入口,如下: 本文基于博 ...

  6. 让编程不再迷茫--java编程入门

    让编程不再迷茫 分享到:更多 1.程序设计理解 1.1 程序设计是什么? 1.2 你适合学习程序设计吗? 1.3 如何学好程序设计? 2.Java编程入门 2.1 JDK 2.1.1 JDK下载 2. ...

  7. Java开发编程小白零基础学习路线附资源

    最新Java零基础小白从入门到精通学习路线: https://www.bilibili.com/read/cv11975482 全套视频资料打包下载(视频.源码.工具.软件.笔记.案例): https ...

  8. Java网络编程(自己在学习的一些路线)

    Java网络编程 1. 协议与URL 这个可以参考我在python写的相关文档. 2. maven Maven 是一个项目管理和构建自动化工具.但是对于我们程序员来说,我们最关心的是它的项目构建功能. ...

  9. java开发的成长迷茫--java架构师

    我自己已经工作快两年了,毕业一年了,我的目标定位是java架构师,可是对于自己该怎样成为一名架构师,很迷茫,同时也在不知道未来的成长过程该怎么走,总是在盲目的学习新技术,可是新技术是学不完的,总不能一 ...

  10. java 设计模式_快速上手Java设计模式之简介

    阅读本文约需要5分钟 大家好,我是你们的导师,经常看我朋友圈的同学应该知道,我每天会在微信上给大家免费提供以下服务! 1.长期为你提供最优质的学习资源! 2.给你解决技术问题! 3.每天在朋友圈里分享 ...

最新文章

  1. 汉字笔画数据_统计学原理 数据的预处理
  2. MongoDB 主从复制集搭建
  3. shell脚本编程规范与变量
  4. 使用south实现Django的数据库升级迁移
  5. 用C语言设置程序开机自启动
  6. ASP.NET Web API 中的属性路由
  7. java心得---泛型
  8. 关于地理国情监测(国家测绘局、地理信息系统协会改名及国家级地理信息产业园奠基的风生水起)...
  9. zookeeper 原理
  10. xss攻击和csrf攻击
  11. ​每一页都是知识点,这本Flutter企业级实践指南太绝了
  12. linux 修改文件的权限
  13. 【xinfanqie】熟知针式与喷墨打印机之间的区别
  14. 表达无序列表语义的html标签是,HTML语义标签的介绍和常用的语义标签
  15. 阿里腾讯裁员、最高30%?计算机行业前景到底如何...
  16. QGraphicsItem
  17. Python+Selenium_UI自动化操作(1)——将浏览器最大化
  18. 年过八旬指的是多少岁
  19. 如何用计算机进行照片合成,不借助软件怎样将两张照片合成一张?一招教你搞定!...
  20. 【高等数学】常见的均值不等式

热门文章

  1. android指定app抓包 无需root
  2. MySQL源码分析——代码结构与基本流程
  3. SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.的解决方法
  4. 鞍山:智慧水务时代 近四成市民网上缴费
  5. Matlab写TIFF格式文件(多于3波段)
  6. 指纹识别工具WhatWeb使用教程,图文教程(超详细)
  7. 90%创业者都不会有效表达,如何成为另外的10%?
  8. Vue动态绑定class属性的5种方法:
  9. 视频:3D打印的高超音速「客机」发动机测试
  10. [YOLO专题-3]:总体-目标检测的常见模型评估指标