1.UML

  a.全称:统一建模语言

  b.UML图:流程图、用例图、时序图、类图

  c.接口与类之间——实现

  d.对象与对象之间

    ①泛化——在UML中不叫继承,而叫泛化

    ②关联

      依赖:use a 是一种弱关联关系

      聚合:has a 整体与部分的关系,但可分离

      组合:contains a 整体与部分的关系,但不能分离(又称强聚合)

      注意:在Java中,聚合和组合基本是相同的,没有太大的区别

2.设计原则

  a.衡量软件设计质量的标准:可读性、可复用性、可扩展性、可维护度

  b.标准概括:高内聚度,低耦合度

  c.七大原则:

    ①单一职责原则:一个类应该仅有一个引起他变化的原因

    ②开闭原则:对扩展开放,对修改关闭(核心原则)

    ③里氏替换原则:子类替换所有父类后,也能正常工作

    ④依赖倒转原则:高层模块不应该依赖低层模块,二者应该依赖抽象

            抽象不应该依赖于细节,细节应该依赖抽象

    ⑤接口隔离原则:即最小接口原则

    ⑥组合/聚合复用原则:多用组合/聚合,少用继承

    ⑦迪米特法则:最少知识原则

Java 之 OOAD的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. Java面试题 OOAD & UML+XML+SQL+JDBC & Hibernate

    二.OOA/D 与UML 部分:(共6 题:基础2 道,中等难度4 道) 96.UML 是什么?常用的几种图?[基础] 答:UML 是标准建模语言:常用图包括:用例图,静态图(包括类图.对象图和包图) ...

  3. JAVA架构师要求

    JAVA架构师要求专业素质要求:1.理解架构师的职责和架构设计的目标.原则及取舍:2.精通架构模式,Transaction.Security.Persistence等机制及实现,IOC.AOP.SOA ...

  4. Java Interview Reference Guide--reference

    Part 1 http://techmytalk.com/2014/01/24/java-interview-reference-guide-part-1/ Posted on January 24, ...

  5. java学会需要掌握的知识(来源网上。。)

    Java就业指导 2016-03-22 骆昊 程序人生 点击上方"程序人生"关注我们 想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些 ...

  6. 作为一名JAVA程序员应该有怎样的就业思维

    想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,在面试之前到底需要准备哪些东西呢?面试时面试官想了解你的什么专业技能,以下都是一个合格JAVA软件工程师所要具备的. 一.专业技能 1.熟 ...

  7. Java面试指导

    Java面试指导   想要成为合格的Java程序员或工程师到底需要具备哪些专业技能,面试者在面试之前到底需要准备哪些东西呢?本文陈列的这些内容既可以作为个人简历中的内容,也可以作为面试的时候跟面试官聊 ...

  8. Java简历与面试

    尊重原创:http://blog.csdn.net/love_java_cc/article/details/78292347 Java就业指导   想要成为合格的Java程序员或工程师到底需要具备哪 ...

  9. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

随机推荐

  1. mybatis 按in 函数参数顺序排序

    使用 FIELD()函数 SELECT *  FROM   user  WHERE id IN (72, 80, 69)  ORDER BY FIELD(id, 72, 80, 69)

  2. python 面向对象编程(初级篇)

    飞机票 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最 ...

  3. nginx(一)之默认配置文件

    首先是nginx.conf vim /etc/nginx/nginx.conf user nginx; // 设置nginx服务的系统使用用户 worker_processes 1; // 工作进程数 ...

  4. PHP实现网络Socket及IO多路复用

    一直以来,PHP很少用于socket编程,毕竟是一门脚本语言,效率会成为很大的瓶颈,但是不能说PHP就无法用于socket编程,也不能说PHP的socket编程性能就有多么的低,例如知名的一款PHP ...

  5. Es6模块语法笔记

    /** * Created by Administrator on 2017/4/15. */ /*---------------------export命令--------------------- ...

  6. django配置一个网站建设

    第一步: 安装数据库MySQL,也可以使用pycharm自带的数据库sqllite,大项目要使用数据库.安装请参考上篇. 数据库在pycharm中驱动设置,setting文件中修改驱动文件密码等信息. ...

  7. Java 画一个5X5的方形矩阵

    效果图如下: 思路:创建一个窗口,使其居中于屏幕中央,使用drawRect(x, y, width, height)画正方形. import java.awt.Graphics; import jav ...

  8. swagger2常用注解说明

    说明: 1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行 ...

  9. json数据转为Map集合

    我是利用Gson来弄得Gson gson = new Gson();//显得出HashMap的类型Type type = new TypeToken<HashMap<String, Str ...

  10. base | Tread类

    Tread类 Linux中,每个进程有一个pid,类型pid_t,由getpid()取得.Linux下的POSIX线程也有一个id,类型 pthread_t,由pthread_self()取得,该id ...