UML类图
类图定义规则
属性和方法前加上(+、-、#、留空)分别代表:公开(public)、私有(private)、保护(protected)、缺省(default)
方法括号内为参数类型,冒号后为返回值类型
下划线表示 静态(static),斜体表示 抽象(abstract)
类图关系表示法
其中 关联、聚合、组合,比较容易混淆,它们的区别:
关联:描述的是两个独立实体之间的连接,它们可以独立存在。
聚合:描述的是整体和部分之间的关系,部分可以独立于整体存在。
组合:描述的是一种更强的整体和部分关系,部分不能独立于整体存在。
依赖 和 关联 的主要区别在于:
依赖是临时性的,而关联是长期性的。
依赖关系通常表示一个类使用另一个类,而关联关系表示对象之间的结构关系。
七个原则
开闭原则
对扩展开放,对修改关闭。
即程序要设计成扩展新功能时,只需添加新代码,而无需修改现有代码。
里氏替换原则
子类可以当作父类使用,且替换后不改变运行结果。
单一职责原则
一个类只负责一个职责。
依赖倒转原则
高层模块不应该依赖底层模块,抽象不应该依赖于细节。
接口隔离原则
接口应该小而完备,避免大而臃肿。不因该强迫实现类实现不该有的功能。
合成复用原则
在代码复用时,优先使用组合、聚合、关联的方式,其次考虑继承方式。
组合、聚合、关联、继承的区别可参考上面《类图关系表示法》。
最少知道原则(别称:迪米特法则)
一个类对于其他类知道的越少越好。
扩展:高内聚低耦合
要注意,下图是以类的角度。从方法的角度来看,方法之间互调频繁,也是耦合。
创建型
单例模式
1.饿汉式
缺点:类加载后立刻创建对象,较占资源。
2.懒汉式
优点:按需加载。
缺点:使用锁来保证并发安全,代码较复杂。
3.内部类式
优点:懒汉式改进版,使用JVM机制取代了锁,同样能保证并发安全的情况下,代码更简单了。
简单工厂模式
优点:客户和具体商品解耦。
缺点:工厂里硬编码所有商品,每次添加新商品需要修改工厂代码,违反开闭原则。
工厂方法模式
特点:添加新商品只需新建对应工厂,无需修改其他代码,符合开闭原则。
抽象工厂模式
特点:每个品牌工厂可以生产多种类型的商品。
建造者模式
定义:将一个对象的建造步骤、顺序、细节进行分离。
抽象建造者:定义构建产品的步骤。
具体建造者:实现每个步骤。
指挥者:决定步骤的执行顺序。
结构型
代理模式
定义:通过代理类来访问被代理类。
桥接模式
定义:将抽象与实现分离,使它们都可以独立地变化。
适配器模式
定义:通过包装,让类兼容特定接口。
装饰器模式
定义:通过包装,实现功能动态扩展。
行为型
观察者模式
定义:对象可以被订阅,并主动通知订阅者。
策略模式
定义:使策略能动态的切换。
模板方法模式
定义:将可变的方法延迟到子类实现。
状态模式
定义:把类功能按不同状态进行分离。
迭代器模式
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
责任链模式
定义:多个处理者按序连接,每个处理者决定是否处理请求、是否调用后序。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容