
设计模式
文章平均质量分 63
设计模式
qq_41956309
这个作者很懒,什么都没留下…
展开
-
设计模式-桥接模式
定义将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度优点抽象与实现分离,扩展能力强符合开闭原则符合合成复用原则其实现细节对客户透明缺点由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立变化的维度,这增加了系统的理解与设计难度。结构抽象化(Abstraction)角色:定义抽象类,并包含一个对实现化对象的引用。扩展抽象化(Refined Abstraction)角色:是抽象化角色的子原创 2022-04-13 22:32:10 · 71 阅读 · 0 评论 -
适配器模式实际应用案例
定义将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。优点客户端通过适配器可以透明地调用目标接口。复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。在很多业务场景中符合开闭原则。缺点适配器编写过程需要结合业务场景全面考虑,可原创 2022-04-12 17:00:00 · 1756 阅读 · 1 评论 -
设计模式-代理模式
定义由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。优点代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用;代理对象可以扩展目标对象的功能;代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性缺点代理模式会造成系统设计中类的数量增加在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢;增加了系统的复杂度;结构抽象主题(Subjec原创 2022-04-11 21:34:41 · 74 阅读 · 0 评论 -
建造者模式
定义指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。优点封装性好,构建和表示分离。扩展性好,各个具体的建造者相互独立,有利于系统的解耦。客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。缺点产品的组成部分必须相同,这限制了其使用范围。如果原创 2022-04-11 20:25:25 · 69 阅读 · 0 评论 -
抽象工厂模式在项目中的应用案例
定义工厂方法模式只考虑生产同等级的产品,但是在现实生活中许多工厂是综合型的工厂,能生产多等级(种类) 的产品,如农场里既养动物又种植物,电器厂既生产电视机又生产洗衣机或空调,大学既有软件专业又有生物专业等。抽象工厂模式将考虑多等级产品的生产,将同一个具体工厂所生产的位于不同等级的一组产品称为一个产品族,图 1 所示的是海尔工厂和 TCL 工厂所生产的电视机与空调对应的关系图。使用抽象工厂需要满足的条件系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。系统一次只可能消费其中某一族原创 2022-04-11 16:55:04 · 926 阅读 · 0 评论 -
工厂方法模式在项目中的应用案例
定义工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则优点用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。缺点类的个数容易过多,增加复杂度增加了系统的抽象性和理解难度抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解决。应用场景原创 2022-04-11 16:21:19 · 932 阅读 · 0 评论 -
简单工厂模式在项目中的应用案例
普通工厂案例演示原创 2022-04-11 10:55:33 · 605 阅读 · 0 评论 -
原型设计模式
定义可以理解就是克隆用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象深克隆和浅克隆的定义浅克隆:新对象的数据和原来的一样 如果是引用类型 他的的内存地址指向的是同一片区域深克隆:属性中其他对象会被克隆但是引用地址会改变优点1.Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。2.可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用(例如恢复到历原创 2022-04-11 08:52:19 · 62 阅读 · 0 评论 -
设计模式-单例模式
定义指一个类只有一个实例,且该类能自行创建这个实例的一种模式单例模式属于创建型模式特点1.单例类只有一个实例对象;2.该单例对象必须由单例类自行创建;3.单例类对外提供一个访问该单例的全局访问点。优点1.单例模式可以保证内存里只有一个实例,减少了内存的开销。2.可以避免对资源的多重占用。3.单例模式设置全局访问点,可以优化和共享资源的访问。缺点1.单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。2.在并发测试中,单例模式不利于代码调试原创 2022-04-11 08:29:12 · 215 阅读 · 0 评论 -
七大设计原则
开闭原则定义对修改关闭 对扩展开放当需求改变时 在不修改源代码的前提下 可以扩展应用的功能 满足新的需求作用它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性1.软件遵守开闭原则的话,软件测试时只需要对扩展的代码进行测试就可以了,因为原有的测试代码仍然能够正常运行。2.粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性3.遵守开闭原则的软件,其稳定性高和延续性强,从而易于扩展和维护。实现方法可以通过“抽象约束、封装变化”来实现开闭原原创 2022-04-10 19:47:19 · 123 阅读 · 0 评论