设计模式
文章平均质量分 75
wangbiao007
这个作者很懒,什么都没留下…
展开
-
第九章 设计模式之观察者模式
观察者模式定义 观察者模式就当多个对象对一个对象存在依赖的时候,这个对象状态的改变需要通知到其他对象的时候,就会用到观察者模式。 观察者模式的好 观察者和被观察者是抽象耦合的 观察者模式主要的类 1.抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。 2.具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改变时,通知所有注册过的观察者原创 2021-07-18 21:46:27 · 280 阅读 · 2 评论 -
第八章 设计模式之单例模式
单例模式的定义 一个类创建的对象都是同一个对象。在运行环境中,通过这个类取得的对象都是同一个。 单例模式的好处 1.节约资源,一个类只能创建一个对象,在运行环境中,所有根据这个类创建的对象都是同一个。 2.可以避免频繁销毁和创建,提高性能。 3.提供一个全局的访问点。 单例模式的主要注意点 创建单例模式首先这个类得有一个私有的构造方法,还有一个私有的静态属性,这个属性的类型就是这个类,并有一个静态的public方法,通过这个静态方法将对象返回。 单例模式结构图 单例模式代码: 单例模原创 2021-07-17 17:38:57 · 166 阅读 · 1 评论 -
第七章 设计模式之代理模式
代理模式定义 客户端想访问目标对象,为了控制客户端对目标对象的访问权限,还是由于目标对象存在多个,统一一种对目标对象的使用方式,所以在客户端和目标对象之间多了一个代理类。用代理类控制客户端对目标对象的访问。 代理模式的好处 1.可以控制对目标对象的访问权限,保证目标对象对客户端是透明的。 2.要是有多个目标对象的话,可以统一对目标对象的访问模式,客户端不需要提供对目标的多种处理方式,例如代理类利用反射就可以处理多种目标类,而只需要给客户端提供一种访问方式就行。 代理模式的主要类 被代理对象:客户原创 2021-07-15 22:53:19 · 97 阅读 · 0 评论 -
第六章 设计模式之责任链模式
责任链模式的定义 当有一个请求需要多个处理者处理的时候,如果是客户端调用一个个处理者来处理的话,就会显得比较臃肿,而且客户端和处理者之间的耦合度过高,客户端的处理逻辑也会显得比较复杂,如果将这些处理者组成一个链条,将请求交给链头的处理者来处理,至于链头的处理者如何去调用剩下的处理者来处理这个客户端就可以不用关心。 ...原创 2021-07-14 23:12:33 · 119 阅读 · 0 评论 -
第五章 设计模式之装饰器模式
装饰器模式的定义 不改变原有类的结构却想对这个类的功能做扩展,或者在这个类的功能上做扩展。 装饰器模式的关键类 1.抽象构件(Component)角色:被装饰类类和抽象装饰器类都需要实现的接口,对基础类和抽象装饰器类有一个统一的约束。并于抽象装饰类接收统一的对象。 2.具体构件(Concrete Component)角色:需要被装饰的类,也就是被装饰的类。 3.抽象装饰(Decorator)角色:实现对被装饰类的引用,具体装饰类继承抽象装饰类。 4.具体装饰(ConcreteDecor...原创 2021-07-14 22:32:35 · 178 阅读 · 0 评论 -
第四章 设计模式之适配器模式
适配器模式定义 系统需用用到原有的类的功能,但是原有的类不符合现在的系统接口规范,需要将原有的类改造成符合现在系统的接口规范,使得两个因为接口规范不能在一起工作的类能在一起工作。 适配器模式的关键类 目标接口(Target):当前系统所期待的接口,可以是接口或者抽象类。 适配者(Adaptee):不符合系统要求的类,需要对其进行改造,让它符合系统规范。 适配器(Adapter):它是一个转换类,通过继承或者引用适配者,将适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。 适配器模式的种原创 2021-07-14 21:19:56 · 363 阅读 · 1 评论 -
第三章 设计模式之策略模式
策略模式的定义 策略模式就是有一系列算法,这些算法只是行为上的不同,将这些算法一一封装起来,然后使得他们能够相互替换。 策略模式的关键类 策略接口:定义一个策略接口,起到约束具体策略类的作用,将具体的策略实例赋值给策略接口对象,在环境类中直接调用这个策略接口对象的相关方法,这样在用不同的策略类赋值给策略接口对象后,环境类后面的代码都不需要改动的。 具体的策略类:将具体的算法封装到策略类中,并实现统一的策略接口。 环境类:持有一个策略类的引用,最终给客户端调用。 策略模式的好处: 1.便于扩展,原创 2021-07-13 22:36:19 · 92 阅读 · 0 评论 -
面试准备之设计模式
今天北京暴雪,2019-12-16 星期一,被套了大半年的万科终于回本了 设计模式的六大原则 总原则-开闭原则:对修改关闭,对扩展开发。 里氏替换原则:在继承类的时候,除了对父类进行一些功能的扩展外,尽量不要重载父类的方法。我们经常用父类承接子类对象,当重载父类方法后,如果有一处想调用父类原来的方法,但是实际这个父类指向的是子类对象的话,由于方法被重载,所以有可能出现意想不到后果。 单...原创 2019-12-16 23:31:59 · 330 阅读 · 3 评论 -
第二章 设计模式之模板模式
模板模式有两种类:1.模板类 2.具体算法类 模板类 模板类规定了算法骨架既执行的逻辑顺序,模板类中也将一些公共重用方法给提取出来,在模板类中有三种方法: 1.模板方法:规定具体方法的调用逻辑顺序,也就是说它只负责一些方法按顺序执行,而不管这些方法的具体实现。 2.公共方法:将子类中原创 2016-06-17 15:27:55 · 74 阅读 · 0 评论 -
第一章 设计模式之建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 类型:创建类模式 类图: 四个要素 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组成。抽象建造者:引入抽象原创 2016-06-14 19:12:32 · 635 阅读 · 0 评论