栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计模式学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式学习笔记

目录

一、OOP七大原则

二、工厂模式

遵循OOP的以下原则:

核心本质:

三种模式:

小结:

应用场景:

三、抽象工厂模式

定义:

适用场景:

优点:

缺点:


一、OOP七大原则

一、开-闭原则(Open-Closed Principle, OCP)

对扩展开放,对修改关闭。最基础,最重要的一个原则。顾名思义,对一个类允许扩展其功能,但是不能影响到现有的功能模块。对提供方开放,对使用方关闭。

二、里氏替换原则(Liskov Substitution Principle,LSP)

继承必须确保超类所拥有的性质在子类中仍然成立。超类能出现的地方,可以用子类代替,子类拥有超类的所有属性和方法,通俗来说子类拥有超类的功能,可以拓展超类的功能,但是不能修改超类的功能。

三、依赖倒置原则(Dependence Inversion Principle)

要面向接口编程,不要面向实现编程。高层模块不应该依赖底层模块,二者都依赖其抽象。程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

四、接口隔离原则(Interface Segregation Principle, ISP)

要为各个类建立它们需要的专用接口。不同的类使用同一个接口的部分方法时,应该将每个类对应的方法从接口中抽离出来分别实现。

五、合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)

尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。判断组合和聚合关系的一个简单方法就是:看整体与部分的生命周期是否一致,部分能够独立于整体而存在则属于聚合;整体消失部分不复存在则属于组合。

六、迪米特法则(Law of Demeter LoD)

也叫最少知道原则。只与你的直接朋友交谈,不跟“陌生人”说话。两个对象之间有耦合关系,说明对象间是朋友关系。出现在成员变量,方法参数,方法返回值中的类为直接朋友;出现在局部变量中的类就是陌生朋友。

七、单一职责原则(Simple responsibility pinciple SRP)

控制类的粒度大小,将对象解耦、提高其内聚性。一个类做好自己的事情,尽量不要与其他类建立联系。一个类中的方法只做一件事情。

二、工厂模式

遵循OOP原则:

开闭原则:软件的试题应实体扩展开放,对修改关闭。

依赖倒置原则:针对接口编程,不针对实现编程

迪米特法则:只与直接的朋友通信,避免与陌生人通信。

核心本质:

实例化对象不使用new,用工厂方法代替
将选择实现类,创建对象统一管理和控制。从而将调用者跟我们的实现类解耦。


三种模式:

简单工厂模式
用来生产同一等级结构中的任意产品(对于增加新的产品,需要覆盖已有代码)
工厂方法模式
用来生产同一等级结构中的固定产品(支持增加任意产品)
抽象工厂模式
围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。


小结:

简单工厂模式(静态工厂模式)
虽然某种程度上不符合设计原则,但实际使用最多!
工厂方法模式
不修改已有类的前提下,通过增加新的工厂类实现扩展。
抽象工厂模式
不可以增加产品,可以增加产品族!

应用场景:

JDK中Calendar的getInstance方法
JDBC中的Connection对象的获取
e Spring中IOC容器创建管理bean对象
反射中Class对象的newInstance方法

三、抽象工厂模式

只提供标准不生产实体

定义:

抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,无需指定它们具体的类
 

适用场景:

客户端(应用层)不依赖于产品类实例如何被创建、实现等细节
强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码
提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现

优点:

适用于产品族比较稳定的情况,具体产品在应用层的代码隔离,无需关心创建的细节
将一个系列的产品统一到一起创建

缺点:

规定了所有可能被创建的产品集合,产品 中扩展新的产品困难;
增加了系统的抽象性和理解难度(增加一个产品有一定的难度)


抽象工厂模式
围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888414.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号