Java设计思想(1)
前言:接下来学习的是java中非常重要的东西,也是非常抽象的东西,有种只可意会不可言传的感觉,不过没那么神秘咯,要相信代码功底好,这些都不在话下塞。不过设计思想需要的是不断的学习,不断的领悟,才能更好的体会设计思想。
一、组件
下面通过一个图片抽象的了解下:
这是一种“组件”封装体设计思想,图中的组件(1~k)很显然是组件,还有模块(1~m),子系统(1~n)也是可以看成是组件,而且系统也可能是组件,如果一个很大的软件,那么这部分系统只是项目的一角。
二、Java程序设计的基本原则1
Part1:
1、面向接口编程:这是Java编程里面大家公认的第一原则;接口很重要的一个功能:封装隔离;接口是功能块或封装块的外观。
2、优先使用对象组合而非类继承
3、分层(最典型的三层结构: 表现层 --> 逻辑层 --> 数据层)
4、层间交互的基本原则
① 表现层调用逻辑层,逻辑层调用数据层,不可以反过来。
② 层间交互也应该通过接口进行调用,以确保各层的实现独立变化。
Part2:
1、面向接口编程思想
① 接口及相关机制最基本的作用:通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。根据接口可以了解对象的交互界面,而不需要了解对象所属的类。
②面向对象程序设计讲究“提高内聚,松散耦合”,那么不同的程序模块怎么相互访问呢,就是通过接口,也就是接口是各部分对外的统一外观。接口在Java程序设计中体现的思想就是封装隔离,因为接口只是描述一个统一的行为,所以开发人员在面向接口编程时并不关心具体的实现。
③接口在面向对象的Java程序设计中占有举足轻重的地位。事实上在设计阶段最重要的任务之一就是设计出各部分的接口,然后通过接口的组合,形成程序的基本框架结构。
注意:对于行为模型,优先选用接口,尽量少用抽象类
既为约束子类的功能,又要提供一些公共的功能,就选用抽象类
2、组件中的面向接口编程示意图
三、三层结构设计模式
三层结构分别具有的功能:
① 表现层功能:展示数据、人机交互、收集参数调用逻辑层。
② 逻辑层功能:进行数据的逻辑校验、进行逻辑判断、实现业务功能、处理相关功能、处理后续流程、组织数据返回给表现层。
③ 数据层功能:实现数据持久化、实现对象和持久化数据的双向映射。
Java设计思想(1)相关推荐
- Java设计思想深究----多线程与并发(图文)
本文很长很长,对原理深入至内存层面,以顺序结构讲述集合框架的设计故事,请耐心阅读顺序阅读 或 挑选疑惑点阅读. 目录结构太大,导致点击后索引到内容末尾,需要查看上滑或下滑即可. 目录 一切的缘起是昂贵 ...
- java设计思想和设计模式,快来收藏!
Java成长笔记大致内容如下: 0-1年入门: Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性) Web编程初探(S ...
- 数据库设计思想深究----Mysql(图文)
在探索开始前,我们先试想一个问题:存储为什么要分缓存与磁盘? 一.为什么要区分缓存与磁盘? 我们利用高级语言,编写逻辑,最终被解释为指令集合,委托CPU去处理. 根据计算机组成原理,我们知道CPU在执 ...
- 【设计思想解读开源框架】java监听模式和观察者模式
深耕技术,啃下22个技术点 互联网行业更新换代非常快,行业常态便是不断学习,因此这些主流技术你一个都不能落下! ①并发编程 Java并发编程是整个Java开发体系中最难以理解,但也是最重要的知识点之一 ...
- 【设计思想解读开源框架】java如何发送post请求
在这里分享一份 [mybatis从入门到精通] 的强力教程,定能够助你一臂之力. Mybatis基本介绍 ORM和MyBatis 对象/关系数据库映射(ORM) 基本映射方式 流行的ORM框架简介 目 ...
- 【学习笔记】【Design idea】一、Java异常的设计思想、性能相关、笔记
1.前言: 异常.本该是多么优雅的东西,然而,得全靠自己在零散的信息中汇集. 学习笔记保持更新. 2.教材(参考资料) 其他 ①受检异常与非受检异常:https://www.cnblogs.com/j ...
- java中service设计_JDBC中DAO+service设计思想
一.DAO设计思想 a) Data access Object(数据访问对象):前人总结出的一种固定模式的设计思想. 高可读性. 高复用性. 高扩展性. b) JDBC代码实现的增删改查操作是有复用需 ...
- Java EE设计思想
为了更好地学习Java EE,首先要领会Java EE的设计思想.社会要想发展进步,其根本在于每个社会成员都"各司其职,各尽其责",对于一个复杂的企业级应用系统也是如此.本着这种合 ...
- 【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
回看最初的目标:[Java设计模式 学习目标及大纲]高质量代码的标准及实现路径在这篇Blog里我们明确了什么是高质量的代码:易维护.易读.易扩展.灵活.简洁.可复用.可测试,也知道高质量代码的达成路径 ...
最新文章
- .net 获取字符串中的第一个逗号的位置_用EXCEL合并同列字符串
- OHCI,UHCI,EOHCI,XHCI
- 云计算基础知识:CPU虚拟化
- mysql 固定符号分列显示_MySql中指定符号分割并分行展示
- 折叠菜单,选择下拉(手风琴)
- Redis常见面试题7 Pipeline及主从同步
- ios学习8_KVC和字典转模型
- Excel——keil5内存数据进制转换
- Linux ssh服务开启秘钥和密码认证
- dms系统与mysql_DMS管理MYSQL数据库登陆不了。
- .net web页面嵌入海康视频(winform)
- 读一本自己心爱的书,冒什么风险都是值得的
- 员工转正述职答辩问什么问题_实习期员工转正述职报告
- 快门光圈感光度口诀_光圈快门感光度口诀是什么?
- PTA~习题8-4 报数 (20分) 2020年11月
- 辉芒微FT61F023,FT61F011A
- python提升篇(五) -----实例练习第04day
- android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题
- 参加量子位和中关村一号联合举办的AI+智慧城市发展趋势和挑战沙龙 之 北京篇
- cv曲线面积的意义_关于粒径及粒度分布的定义及其在粉末涂料生产中的指导意义...
热门文章
- 易语言网页另存为html,易语言Html对象取网页body文本源码
- lisp工具箱for中望_CAD二次开发LISP视频_小懒人CAD工具箱_CAD插件_CASS插件_LISP代码...
- CASS11最新版免狗下载、安装教程
- 在vue脚手架环境利用vant组件简单实现移动端购物商城系统
- 微信保存图片提示失败_微信发不出去图片的4种解决方法
- 计算机与生命科学交叉应用,第七届数学、计算机与生命科学交叉研究青年学者论坛在京成功举行...
- ofd能在线播放吗 linux,看到OFD格式就头大?OFD在线预览很简单
- 汇编语言程序设计——显示Power Idea公司的数据
- DISCUZ首页模板解释
- 分布式光纤温度监测系统在通信机房大楼电缆竖井的应用