Java23种设计模式6大原则总结.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《Java23种设计模式6大原则总结.docx》由会员分享,可在线阅读,更多相关《Java23种设计模式6大原则总结.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结设计模式概念:一套被反复使用、多数人知晓、经过分类编目的优秀代码设计体会的总结。设计模式要素:模式名称、问题、举例、末态环境、推理、其他有关模式、已知的应用。 设计模式分类:创建型、结构型、行为型。创建型模式功能: 1.统所使用的详细类的信息封装起来。2. 类的实例是如何被创建和组织的。创建型模式作用: 1.封装创建规律,不仅仅是new 一个对象那么简洁。2. 封装创建规律变化,客户代码尽量不修改,或尽量少修改。常见的创建型模式:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。 常见的结构型模式:代理模式、装饰模式、适配器模式、组合模式、桥梁模式、外观模式、享元模式
2、。常见行为型模式:模板方法模式、命令模式、责任链模式、策略模式、迭代器模式、中介者模式、观看者模式、备忘录模式、拜访者模式、状态模式、说明器模式。单一职责原就: 一个类应当只有一个职责。优点 : 降低类的复杂性。提高类的可读性。提高代码的可爱护性和复用性。降低因变更引起的风险。里氏替换原就:优点:代码共享,削减创建类的工作量,每个子类都拥有父类的方法和属性。提高代码的可重用性。提高代码的可扩展性。提高产品或项目的开放性。缺点: 1. 继承是入侵式的。只要继承,就必需拥有父类全部属性和方法。2. 降低代码的敏捷性。子类必需拥有父类的属性和方法,使子类收到限制。3. 增强了耦合性。当父类的常量、变
3、量和方法修改时,必需考虑子类的修改,这种修改可能造成大片的代码需要重构。可编辑资料 - - - 欢迎下载精品名师归纳总结依靠倒置原就 :高层模块不应当依靠低层模块,两者都依靠其抽象。抽象不依靠细节。细节应当依靠于抽象。在 Java 中的表现:模块间的依靠通过抽象发生,实现类之间不发生直接的依靠关系,其依靠关系是通过接口或抽象类产生的。接口或抽象类不依靠于是实现类。 实现类依靠于接口或抽象类。接口隔离原就: 1. 一个类对另外一个类的依靠性应当是建立在最小的接口上的2. 一个接口代表一个角色,不应当将不同的角色交给一个接口。3. 不应当强迫客户使用它们的不同方法。如下列图的电子商务系统在三个的方
4、会使用到订单类:一个是门户,只能有查询方法。一个是外部系统, 有添加订单的方法。一个是治理后台, 添加、 删除、 修改、 查询都要用到。“ 原子” 在实践中的衡量规章:1. 一个接口只对一个子模块或者业务规律进行分类。2. 只保留接口中业务规律需要的public 方法。3. 尽量修改污染了的接口,如修改的风险较大,就可采纳适配器模式进行转化处理。4. 接口设计应因项目而异,因环境而异,不能照搬教条。迪米特法就: (表述)只与你直接的伴侣们通信。不要跟“生疏人”说话。每一个软件单位对其他的单位都只有最少的明白,这些明白仅局限于那些与本单位亲密相关的软件单位。对迪米特法就进行模式设计有两个:外观模
5、式、中介者模式。开闭原就 :一个软件实体应当对扩绽开放,对修改关闭。重要性表达:提高复用性。提高爱护性。提高敏捷性。易于测试可编辑资料 - - - 欢迎下载精品名师归纳总结单例模式: 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统供应这个实例单例模式。优点: 1. 在内存中只有一个实例,削减了内存的开支。2. 只生成一个实例,削减了系统的性能开销。3. 防止对资源的多重占用。4. 可以在系统设置全局的拜访点,优化和共享资源拜访。缺点: 1.无法创建子类, 扩展困难, 如要扩展, 除修改代码基本上没有其次种途径可以实现。2. 对测试不利。 3. 与单一职责原就有冲突。饿汉式单例类与
6、懒汉式单例类之间的区分:1. 饿汉式单例类在被加载时实例化,而懒汉式单例类在第一次引用时实例化。2. 从资源利用效率上说, 饿汉式单例类要差一点,但从速度和反应时间的角度来讲, 饿汉式单例类就比懒汉式单例类稍好些。3. 饿汉式单例类可以在Java 中实现,但不易在C+ 中实现。单例模式的使用场景:1. 要求生成唯独的序列号环境。2. 在整个项目中需要一个共享拜访点或共享数据。3. 创建一个对象需要消耗的资源过多。4. 需要定义大量的静态方法的环境。使用单例模式的留意事项:1. 在使用任何 EJB 、RMI 和 JINI 的分布式系统中, 应当防止使用有状态的单例类。2. 同一个 JVM 中会有
7、多个类加载器,当两个类加载器同时加载一个类时,会显现两个实例,此时也应当尽量防止使用有状态的单例类。可编辑资料 - - - 欢迎下载精品名师归纳总结工厂方法模式: 定义一个用于创建对象的接口,让子类打算实例化那个类。优点:良好的封装性,代码结构清楚。优秀的可扩展性。屏蔽产品类。典型的解耦框架。使用场景: 1. 工厂方法模式是new一个对象的替代品,故在全部需要生成对象的的方都可以使用, 但是需要谨慎考虑是否需要增加一个工厂类进行治理,增加代码的复杂度。2 需要敏捷的、可扩展的框架时。3. 可以用在异构项目中。4. 可以使用在测试驱动开发的框架下。抽象工厂模式: 为创建一组相关或相互依靠的对象供
8、应一个接口,且无需指定它们的详细类。优点: 1. 产品族内的约束为非公开状态,在不同的工厂中,各种产品可能具有不同的相互依靠关系,这些依靠关系由工厂封装在其内部,对于工厂的使用者是不行见的。2. 生产线的扩展特别简洁,假如要针对同一产品族建立新的生产线,只需要实现产品族中的全部产品接口并建立新的工厂类即可。缺点: 产品族本身的扩展特别困难,假如需要在产品族中增加一个新的产品类型,就需要修改多个接口,并且会影响已有的工厂类。使用场景:当一个对象族(或是一组没有任何关系的对象)都有相同的约束。建造者 将一个复杂对象的构建与它的表示分别,使得同样的构建过程可以创建不同的表示。优点: 1. 封装性,可
9、以使客户端不必知道产品内部组成的细节。2. 建造者独立,简洁扩3. 便于掌握细节风险。使用场景: 1. 相同的方法,不同的执行次序,产生不同的结果。2. 多个部件或零件, 都可以装配到一个对象中, 但是产生的运行结果又不相同时。3. 产品类特别复杂,或者产品类中的方法调用次序不同产生了不同的效能。4. 在对象创建过程中会使用到系统的一些其他对象,这些对象在产品对象的创建可编辑资料 - - - 欢迎下载精品名师归纳总结过程中不易得到时。原型模式: 用原型实例制定创建对象的种类,并且通过复制这些原型创建新的对象。优点:性能优良。躲避构造函数的约束。使用场景:资源优化场景。性能和安全要求场景。一个对
10、象多个修改者的场景。结构型模式:为其他对象供应一种代理以掌握对这个对象的拜访。种类:远程代理、虚拟代理、爱护代理、缓存代理、同步代理、智能引用代理优点: 1. 职责清楚:真实的角色实现实际的业务规律,不用关怀其他非本职的事务,通过后期的代理完成附加的事务,附带的结果就是编程简洁清楚。2. 高扩展性:详细主题角色随需求不同可能有许多种,但只要实现了接口,代理类就完全可以在不做任何修改的情形下代理各种真实主题角色。3. 智能化:代理类可以在运行时才确定要去代理的真实主题,这是一种强大的功能。使用场景:代理模式的应用特别广泛,大到一个系统框架、企业平台,小到事务处理、代码片段,随处可见代理模式的使用
11、,例如,JavaRMI的远程调用和 AOP 。装饰模式: 动态的给一个对象添加一些额外的职责。优点: 装饰类和被装饰类都可以独立进展,而不会相互耦合。 装饰模式是继承关系的一个替代方案。装饰模式可以动态的扩展一个实现类的功能。使用场景: 1. 需要扩展一个类的功能,或给一个类增加附加功能。2. 需要动态的给一个对象增加功能,这些功能可以再动态的撤销。3. 需要为一批类进行改装或加装功能。适配器模式: 将一个类的接口变换成客户端所期望的的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。优点: 可以让两个没有任何关系的类在一起运行。增加了类的透亮度。提高类的复用度。增可编
12、辑资料 - - - 欢迎下载精品名师归纳总结强代码的敏捷性。使用场景: 修改一个已经投产中的系统时,需要对系统进行扩展。此时使用一个已有类,但这个类不符合系统中的接口,这是使用适配器模式是最合适的,它可以将不符合系统接口的类进行转换,转换成符合系统接口的、可以使用的类。组合模式 :将组合成树形结构以表示“部分-整体”的层次结构, 使得用户对单个对象和组合对象的使用具有一样性。优点:高层模块调用简洁。节点自由增加。缺点:不易掌握树枝构件的类型。不易使用继承的方法来增加新的行为。使用场景: 1. 需要描述对象的部分和整体的等级结构,如树形菜单、文件和文件夹治理。2. 需要客户端忽视个体构件和组合构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java23种设计模式6大原则总结 Java23 设计 模式 原则 总结
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内