前言:接下来学习的是java中非常重要的东西,也是非常抽象的东西,有种只可意会不可言传的感觉,不过没那么神秘咯,要相信代码功底好,这些都不在话下塞。不过设计思想需要的是不断的学习,不断的领悟,才能更好的体会设计思想。

一、组件

下面通过一个图片抽象的了解下:

这是一种“组件”封装体设计思想,图中的组件(1~k)很显然是组件,还有模块(1~m),子系统(1~n)也是可以看成是组件,而且系统也可能是组件,如果一个很大的软件,那么这部分系统只是项目的一角。

二、Java程序设计的基本原则1

Part1:

1、面向接口编程:这是Java编程里面大家公认的第一原则;接口很重要的一个功能:封装隔离;接口是功能块或封装块的外观。

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

3、分层(最典型的三层结构: 表现层 --> 逻辑层 --> 数据层)

4、层间交互的基本原则

① 表现层调用逻辑层,逻辑层调用数据层,不可以反过来。
             ② 层间交互也应该通过接口进行调用,以确保各层的实现独立变化。

Part2:

1、面向接口编程思想

① 接口及相关机制最基本的作用:通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需要了解对象所属的类。

②面向对象程序设计讲究“提高内聚,松散耦合”,那么不同的程序模块怎么相互访问呢,就是通过接口,也就是接口是各部分对外的统一外观。接口在Java程序设计中体现的思想就是封装隔离,因为接口只是描述一个统一的行为,所以开发人员在面向接口编程时并不关心具体的实现。

③接口在面向对象的Java程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接口,然后通过接口的组合,形成程序的基本框架结构。

注意:对于行为模型,优先选用接口,尽量少用抽象类

既为约束子类的功能,又要提供一些公共的功能,就选用抽象类

2、组件中的面向接口编程示意图

三、三层结构设计模式

三层结构分别具有的功能:

① 表现层功能:展示数据、人机交互、收集参数调用逻辑层。
                          ② 逻辑层功能:进行数据的逻辑校验、进行逻辑判断、实现业务功能、处理相关功能、处理后续流程、组织数据返回给表现层。
                          ③ 数据层功能:实现数据持久化、实现对象和持久化数据的双向映射。

Java设计思想(1)相关推荐

  1. Java设计思想深究----多线程与并发(图文)

    本文很长很长,对原理深入至内存层面,以顺序结构讲述集合框架的设计故事,请耐心阅读顺序阅读 或 挑选疑惑点阅读. 目录结构太大,导致点击后索引到内容末尾,需要查看上滑或下滑即可. 目录 一切的缘起是昂贵 ...

  2. java设计思想和设计模式,快来收藏!

    Java成长笔记大致内容如下: 0-1年入门: Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性) Web编程初探(S ...

  3. 数据库设计思想深究----Mysql(图文)

    在探索开始前,我们先试想一个问题:存储为什么要分缓存与磁盘? 一.为什么要区分缓存与磁盘? 我们利用高级语言,编写逻辑,最终被解释为指令集合,委托CPU去处理. 根据计算机组成原理,我们知道CPU在执 ...

  4. 【设计思想解读开源框架】java监听模式和观察者模式

    深耕技术,啃下22个技术点 互联网行业更新换代非常快,行业常态便是不断学习,因此这些主流技术你一个都不能落下! ①并发编程 Java并发编程是整个Java开发体系中最难以理解,但也是最重要的知识点之一 ...

  5. 【设计思想解读开源框架】java如何发送post请求

    在这里分享一份 [mybatis从入门到精通] 的强力教程,定能够助你一臂之力. Mybatis基本介绍 ORM和MyBatis 对象/关系数据库映射(ORM) 基本映射方式 流行的ORM框架简介 目 ...

  6. 【学习笔记】【Design idea】一、Java异常的设计思想、性能相关、笔记

    1.前言: 异常.本该是多么优雅的东西,然而,得全靠自己在零散的信息中汇集. 学习笔记保持更新. 2.教材(参考资料) 其他 ①受检异常与非受检异常:https://www.cnblogs.com/j ...

  7. java中service设计_JDBC中DAO+service设计思想

    一.DAO设计思想 a) Data access Object(数据访问对象):前人总结出的一种固定模式的设计思想. 高可读性. 高复用性. 高扩展性. b) JDBC代码实现的增删改查操作是有复用需 ...

  8. Java EE设计思想

    为了更好地学习Java EE,首先要领会Java EE的设计思想.社会要想发展进步,其根本在于每个社会成员都"各司其职,各尽其责",对于一个复杂的企业级应用系统也是如此.本着这种合 ...

  9. 【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性

    回看最初的目标:[Java设计模式 学习目标及大纲]高质量代码的标准及实现路径在这篇Blog里我们明确了什么是高质量的代码:易维护.易读.易扩展.灵活.简洁.可复用.可测试,也知道高质量代码的达成路径 ...

最新文章

  1. .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
  2. OHCI,UHCI,EOHCI,XHCI
  3. 云计算基础知识:CPU虚拟化
  4. mysql 固定符号分列显示_MySql中指定符号分割并分行展示
  5. 折叠菜单,选择下拉(手风琴)
  6. Redis常见面试题7 Pipeline及主从同步
  7. ios学习8_KVC和字典转模型
  8. Excel——keil5内存数据进制转换
  9. Linux ssh服务开启秘钥和密码认证
  10. dms系统与mysql_DMS管理MYSQL数据库登陆不了。
  11. .net web页面嵌入海康视频(winform)
  12. 读一本自己心爱的书,冒什么风险都是值得的
  13. 员工转正述职答辩问什么问题_实习期员工转正述职报告
  14. 快门光圈感光度口诀_光圈快门感光度口诀是什么?
  15. PTA~习题8-4 报数 (20分) 2020年11月
  16. 辉芒微FT61F023,FT61F011A
  17. python提升篇(五) -----实例练习第04day
  18. android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题
  19. 参加量子位和中关村一号联合举办的AI+智慧城市发展趋势和挑战沙龙 之 北京篇
  20. cv曲线面积的意义_关于粒径及粒度分布的定义及其在粉末涂料生产中的指导意义...

热门文章

  1. 易语言网页另存为html,易语言Html对象取网页body文本源码
  2. lisp工具箱for中望_CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码...
  3. CASS11最新版免狗下载、安装教程
  4. 在vue脚手架环境利用vant组件简单实现移动端购物商城系统
  5. 微信保存图片提示失败_微信发不出去图片的4种解决方法
  6. 计算机与生命科学交叉应用,第七届数学、计算机与生命科学交叉研究青年学者论坛在京成功举行...
  7. ofd能在线播放吗 linux,看到OFD格式就头大?OFD在线预览很简单
  8. 汇编语言程序设计——显示Power Idea公司的数据
  9. DISCUZ首页模板解释
  10. 分布式光纤温度监测系统在通信机房大楼电缆竖井的应用