About-JavaOOAD
Unified Modeling Language UML语言 一般我们用UML中的类图
类图关系如下:
实现关系是指接口及其实现类之间的关系
泛化关系(Generalization)是指对象与对象之间的继承关系
关联关系(Association)是指对象和对象之间的连接,它使一个对象知道另一个对象的属性和方法。
在Java中,关联关系的代码表现形式为一个对象含有另一个对象的引用(关联关系有单向关联和双向关联。 )
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、
责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模式。
|
设计原则名称 |
设计原则简介 |
重要性 |
|
单一职责原则 |
类的职责要单一,不能将太多的职责放在一个类中。 |
★★★★☆ |
|
开闭原则 |
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。 |
★★★★★ |
|
里氏替换原则 |
在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。 |
★★★★☆ |
|
依赖倒转原则 |
要针对抽象层编程,而不要针对具体类编程。 |
★★★★★ |
|
接口隔离原则 |
使用多个专门的接口来取代一个统一的接口。 |
★★☆☆☆ |
|
组合/聚合复用原则 |
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。 |
★★★★☆ |
|
迪米特法则 |
一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互。 |
★★★☆☆ |
随机推荐
- 利用WCF的双工通讯实现一个简单的心跳监控系统 z
利用WCF的双工通讯实现一个简单的心跳监控系统 http://www.cnblogs.com/zuowj/p/5761011.html 何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态 ...
- Python 半开放socket
利用shutdown实现半开放的socket #server.py import socket s=socket.socket() s.bind(('127.0.0.1',2000)) s.liste ...
- DATAGUARD 在线重建备库
环境: OS: CentOS 6.5 X64 DB: oracle 10.2.0.5 故障:之前由于错误激活备库主写导致主备日志同步,重建备库 1.关闭备库,删除数据文件及控制文件,redo文件 rm ...
- java后台异步任务执行器TaskManager
java后台异步任务执行器TaskManager 此方式基于MVC方式: 一,使用任务: @Resource private TaskManager taskManager; public strin ...
- linux文件权限表示及用户权限管理
UNIX/Linux下关于文件执行权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢? 实际上文件权限标识不仅仅只有U, G, O 11 10 9 8 7 6 5 ...
- 一千行MySQL学习笔记
以下为本人当年初学MySQL时做的笔记,也从那时起没再更新过,但还是囊括了基本的知识点,有时还翻出来查查.是不是干货,就看亲们了~ 如果哪天笔记有更新了,我还是会更新该文章滴,其实笔记已经放到了Git ...
- textContent 与innerText
转自下面这位大神: http://zhangyaochun.iteye.com/blog/1391370 其实关于这textContent与innerText有很多碎碎的东西,不过个人觉得还是一个不错 ...
- web form 控件
webform的简单控件1.Label:文本显示,编译后是span属性:颜色,样式,边线宽度2.Literal:纯文本显示,编译后是text 3.TextBox:文本框TextMode-密码框.文本域 ...
- mysql错误用法insert into where
mysql中给表中插入数据,一般使用insert into. 但是在插入数据时,有时会根据条件来插入数据,比如insert into t_person(num,name) values(1,'lily ...
- Java遍历JSON
JSONObject jsonObject = new JSONObject(s);然后用Iterator迭代器遍历取值,建议用反射机制解析到封装好的对象中 JSONObject jsonObject ...