数据结构与设计模式
文章平均质量分 85
高级设计模式思维
xinlianluohan
本博客都是为了方便自己复习
展开
-
玩转3 种高频设计模式——模板+策略+工厂模式
设计模式转载 2022-12-30 15:44:46 · 873 阅读 · 0 评论 -
一句话总结软件设计七大原则
结合前几节的内容,我们一共介绍了 7 种设计原则,它们分别为开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则和合成复用原则。这 7 种设计原则是软件设计模式必须尽量遵循的原则,是设计模式的基础。在实际开发过程中,并不是一定要求所有代码都遵循设计原则,而是要综合考虑人力、时间、成本、质量,不刻意追求完美,要在适当的场景遵循设计原则。这体现的是一种平衡取舍,可以帮助我们设计出更加优雅的代码结构。各种原则要求的侧重点不同,下面我们分别用一句话归纳总结软件设计模式的七大原则,如下表所转载 2021-03-19 23:16:26 · 395 阅读 · 0 评论 -
4、UML类图及类图之间的关系
UML类图详解转载 2021-03-18 22:38:35 · 1542 阅读 · 0 评论 -
3、UML统一建模语言是什么?
UML(Unified Modeling Language,统一建模语言)是用来设计软件蓝图的可视化建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的标准语言,独立于任何一种具体的程序设计语言。1997 年 UML 被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。应用场景UML 能为软件开发的所有阶段提供模型化和可视化支持。而且融入了软件工程领域的新思想、新方法和新技术,使软件设计人员沟通更简明,进...转载 2021-03-17 23:16:11 · 776 阅读 · 0 评论 -
设计模式之结构类模式——桥梁模式
桥梁模式(Bridge Patter)也叫做桥接模式,是一个比较简单的模式。定义:将抽象和实现解耦,使得两者可以独立地变化。通用类图:● Abstraction——抽象化角色它主要的职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。● Implementro——实现化角色它是接口或者抽象类,定义角色必须的行为和属性。● RefinedAbstraction——修正抽象化角色它引用实现化角色对抽象化角色进行修正。● Co...转载 2021-03-16 10:22:19 · 170 阅读 · 0 评论 -
设计模式之结构类模式——适配器模式
适配器模式(Adapter Pattern)又叫做变压器模式,也叫做包装模式。包装模式还包括装饰模式。定义:将一个类的接口变换成客户端所期待的另一个接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。通用类图:● Target目标角色该角色定义把其他类转换为何种接口,也就是我们期望的接口。● Adaptee源角色源角色是已经存在的、运行良好的类或对象,经过适配器角色的包装,它会成为一个崭新亮丽的角色。● Adapter适配器角色适配器...转载 2021-03-16 10:21:54 · 149 阅读 · 0 评论 -
设计模式之创建类模式——原型模式
原型模式(Prototype Pattern)的简单程度仅次于单例模式和迭代器模式。定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。通用类图:通用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...转载 2021-03-16 10:21:40 · 114 阅读 · 0 评论 -
设计模式之创建类模式——建造者模式
建造者模式(Builder Pattern)也叫做生成器模式。定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。通用类图:通用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 产品类 * * @author Administrator * ...转载 2021-03-15 21:11:01 · 110 阅读 · 0 评论 -
设计模式之创建类模式——抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种比较常用的模式。定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。抽象工厂模式是工厂方法模式的升级版本,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。通用类图:通用代码: 1 2 3 4 5 6 7 8 9 10 11 12 ...转载 2021-03-15 21:09:51 · 242 阅读 · 0 评论 -
设计模式之创建类模式——工厂方法模式
工厂方法模式使用的频率非常高,在我们日常的开发中总能见到它的身影。定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。通用类图:通用源码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 抽象产品类 * @auth...转载 2021-03-15 21:07:50 · 147 阅读 · 0 评论 -
设计模式之创建类模式——单例模式
单例模式(Singleton Pattern)是一个比较简单的模式。定义:确保某一个类只有一个实例,而且自动实例化并向整个系统提供这个实例。通用类图:通用代码:Singleton类称为单例类,通过使用private的构造函数确保了在一个应用中只产生一个实例,并且是自行实例化的。/** * 线程安全的单例模式 * 饿汉式单例 * @author Administrator * */public class Singleton { ...转载 2021-03-15 21:02:46 · 618 阅读 · 0 评论 -
设计模式之七大原则——迪米特法则(LoD,LKP)六
定义:迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供的public方法,我就调用这么多,其他的一概不关心。含义:只和朋友交流朋友类的定义是这样的:出现在成员变量、方法的输入输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于.转载 2021-03-15 20:53:11 · 210 阅读 · 0 评论 -
设计模式之七大原则——接口隔离原则(ISP)五
接口隔离原则 Interface Segregation Principle定义:客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上我们可以把这两个定义概括为一句话:建立单一接口,不要建立臃肿庞大的接口。再通俗一点讲:接口尽量细化,同时接口中的方法尽量少。提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口,而不是建立一个庞大的臃肿的接口,容纳所有的客户端访问。接口是我们设计时对外提供的契约,通过分散定义多个接口,可以预防未来变更的扩散,提高系...转载 2021-03-15 20:48:24 · 234 阅读 · 0 评论 -
设计模式之七大原则——依赖倒置原则(DIP)四
依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义:高层模块不应该依赖底层模块,两者都应该依赖其抽象; 抽象不应该依赖细节; 细节应该依赖抽象。依赖倒置原则在Java语言中的表现是:模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象类产生的; 接口或抽象类不依赖于实现类; 实现类依赖接口或抽象类。依赖倒置原则实际上就是要求“面向接口编程”。采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性..转载 2021-03-15 20:43:34 · 250 阅读 · 0 评论 -
设计模式之七大原则——里氏替换原则(LSP)(三)
里氏替换原则(Liskov Substitution Principel)是解决继承带来的问题。继承的优点:代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性; 提高代码的重用性; 子类可以形似父类,但又异于父类; 提高代码的可扩展性; 提高产品或项目的开放性。继承的缺点:继承是侵入性的,只要继承就必须拥有父类的所有属性和方法; 降低代码的灵活性,子类必须拥有父类的属性和方法,让子类增加了约束; 增强了耦合性,当父类的常量、变量和方法被修改时,必须考虑子类的修改。.转载 2021-03-15 20:26:24 · 3039 阅读 · 2 评论 -
设计模式之七大原则——开闭原则(OCP)(二)
开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的、灵活的系统。定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。Softeware entities like classes,modules and functions should be open for extension but closed for modifications.开闭原则的含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改..转载 2021-03-15 20:13:08 · 390 阅读 · 0 评论 -
设计模式之七大原则——单一职责原则(SRP)(一)
定义:应该有且仅有一个原因引起类的变更。There should never be more than one reason for a class to change.优点:1、类的复杂性降低,实现什么职责都有清晰明确的定义;2、可读性提高,复杂性减低,可读性当然提高;3、可维护性提高,可读性提高,可维护性当然提高;4、变更引起的风险减低,变更是必不可少的,如果接口的单一职责做得好,一个接口修改只对相应的类有影响,对其他接口无影响,这对系统的扩展性、维护性都有非常大的帮助.转载 2021-03-15 20:03:34 · 278 阅读 · 0 评论 -
设计模式之七大原则——合成复用原则(七)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢? 假如有14个数分别是9转载 2018-02-27 17:17:34 · 268 阅读 · 0 评论