设计模式总结 - UML关系总结
1.面向对象关注的点:
可维护:代码是可以维护的
可扩展:方便扩展
可复用:代码可复用
抽象类,封闭不变的部分,抽象易变的部分
封装,继承和多态把程序的耦合度降低
2.UML中的关系有
继承,实现接口,关联(1对1),聚合(1对多),组合(构造函数中实现),依赖(构造函数参数中加入依赖部分)
关联关系:1对1
class T1 { T2 t2; }
不一定体现在非要构造一个字段,也可以是一个方法中需要使用关联的对象。
聚合关系:1对多的关系
Class T1 { List<T2> t2; T2[] t2; }
组合关系:表示是不可缺失的一部分
Class T1 { T2 t2; public T1() { t2=new T2(); } }
依赖关系
Class T1 { public T1(T2 t2,T3 t3){} }
总结示例:
class T1 { T2 t2; //关联1:1 List<T2> t2s; //聚合1:n public void CreateT2(T2 t3) { this.t2 = t3; //依赖 } public T1() { t2 = new T2(); //组合,强耦合 } } class T2 { }
3.单一职责
就一个类而言,只有一个引起它变化的原因
意思是不需要重新写代码改变这个类,职责需要单一
一个类的职责过多,等于将这些职责耦合在一起。一个职责的变化,可能会抑制这个类完成其他职责的能力。
4.开放封闭原则
软件实体(类,模块,函数)应该可以扩展,但是不可以修改。
对扩展开放,对修改封闭
5.依赖倒转原则
抽象不依赖于细节,细节依赖于抽象
面向接口编程,不要对实现编程
6.里氏替换原则
7.接口隔离原则:一个类对另外一个类的依赖建立在最小的接口上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix