设计模式
朗福德_豪
这个作者很懒,什么都没留下…
展开
-
封装
如果有人问你什么是封装呢?答:成员变量或成员方法的作用域范围不同。这个问题有标准答案吗?不知道,那咱们就找几个不同的答案对比一下吧!正文百度百科:封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。菜鸟教程:在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装原创 2021-05-09 17:04:25 · 754 阅读 · 2 评论 -
单一职责原则
单一职责原则百度百科:单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。问题的由来:T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。产生原因没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:原创 2021-05-02 16:11:49 · 530 阅读 · 1 评论 -
依赖倒置原则
前言接着写设计原则中的第二个依赖倒置原则。正文依赖倒置原则百度百科:依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象。通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和维护性,并能够降低修改程序所造成的风险。代码演进的过程下边的代码是实现同学A学习过程的四种方式,通过代码的演进可以更好的来理解依原创 2021-05-01 18:01:36 · 1035 阅读 · 3 评论 -
开闭原则
前言开闭原则软件开发中最基本的原则之一,接下来就用代码来说明开闭原则正文开闭原则概念百度百科:在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变它的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程。理解所谓的开闭,也正是对扩展和修改两个行为原创 2021-04-30 18:23:13 · 232 阅读 · 5 评论 -
装饰器模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。介绍意图:动态地给一个对象添加...原创 2019-03-31 17:43:11 · 299 阅读 · 6 评论 -
享元模式
享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个分布于不同位置的圆来演示这种模式。由于只有 5 种可用的颜色,所以 color 属性被用来检查现有的...原创 2019-03-31 17:41:26 · 317 阅读 · 9 评论 -
外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。介绍意图:为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。主要...原创 2019-03-31 17:40:37 · 271 阅读 · 4 评论 -
三层数据结构总结
前言三层结构是传统的客户/服务器结构的发展,多层机构和三层结构的含义是一样的,只是细节有所不同. 软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件...原创 2018-08-29 23:57:45 · 1834 阅读 · 5 评论 -
模板模式 策略模式 命令模式 比说明与比较
模板模式在模板模式中,一个抽象类公开定义了执行它的方法/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型模式属于行为模式.定义一个操作算法的骨架,而将这一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.优点:封装不变部分,扩展可变部分. 提取公共代码,便于维护. 行为由父类控制,子类实现.缺点:每...原创 2018-08-25 20:45:31 · 2276 阅读 · 4 评论 -
结构型设计模式中的四个容易混淆的模式
适配器模式适配器模式是作为两个不兼容接口之间的桥梁.这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能.这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能.将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.主要解决:主要解决在软件系统中,常常要将一些”现存的对象”放到新的环境中,而新的环境要求的接口对...原创 2018-08-22 18:06:36 · 758 阅读 · 1 评论 -
设计模式的六大原则
前言鲁迅先生曾经在<<故乡>>中写道"世界上本没有路,走的人多了,也便成了路."这句话同样适用于设计模式当中."世界上本没有设计模式,代码写的多了便总结出了设计模式".使用设计模式是为了可重复使用代码,让代码更容易被他人理解,保证代码的可靠性.通过不断的积累,设计模式也成为了一门重要的课程,精通了设计模式就可以真正的理解软件工程了.要想了解和精通设计模式,首先要知道设计...原创 2018-08-11 17:38:50 · 1955 阅读 · 2 评论 -
设计模式(一) 工厂模式类比
简单工厂模式简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类.因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式,它属于创建型模式.简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的...原创 2018-08-05 11:12:32 · 347 阅读 · 2 评论