前言:接下来学习的是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. python调用oracle的存储过程_python 调用 oracle 存储过程
  2. Nature:新聘“诺奖级泰斗”研究揭示大脑中执行不同认知功能环路之间的协同作用
  3. CENTOS在输入ifconfig命令时,提示没有命令的处理方法
  4. C#进阶系列——WebApi 接口测试工具:WebApiTestClient
  5. C语言编程猜谜语,简单的谜语大全及答案
  6. php去掉多字节字符,PHP 面试题 - 如果没有 mb 系列函数,如何切割多字节字符串...
  7. 二级MS Office公共基础知识错题本(1)
  8. 【kafka】Kafka 源码解析:Group 协调管理机制
  9. Git学习总结(4)——我的Git忽略文件与忽略文件提交规则和配置总结
  10. gevent的同步与异步
  11. matlab的基本语法规则_MATLAB基础语法
  12. Ubuntu X64 系统安装配置编录
  13. 微型计算机原理及应用论文,微机原理及应用结业论文
  14. 智能硬件无线通信协议(二)
  15. STLINK下载程序(附STLINK驱动包)
  16. 打造Linux三流娱乐环境,二流办公环境,一流Java开发环境
  17. Verilog HDL(二):行为级建模的结构(initial和always)、begin、fork、时间控制
  18. 采集百度搜寻结果,图片不显示的解决方法
  19. 依概率不放回随机抽样算法
  20. google api设计指南-简介

热门文章

  1. 关于iOS通话记录的问题
  2. Android应用市场发布
  3. 东芝复印机2505AC错误CD40请求维修
  4. 空降leader怎么开展工作?
  5. elearning学习系统的试用心得
  6. python批量转换图片格式
  7. wanlshop商城小程序全局方法整理记录
  8. Springboot毕设项目基于springboot的校园招聘系统dm1tu(java+VUE+Mybatis+Maven+Mysql)
  9. Juniper-JNCIE-SP 分解实验6PE
  10. 《小额贷款操作系统》MVC文献