设计模式
文章平均质量分 52
Zorione
这个作者很懒,什么都没留下…
展开
-
设计原则之里氏替换原则详解
一、里氏替换原则定义定义: 如果对每一个类型为T1的对象O1,都有类型为T2的对象O2,使得所有以T1定义的所有程序P在所有的对象O1都替换成O2时,程序P的行为没有发生任何变化,那么类型T2是类型T1的子类型。通俗理解就是:子类可以扩展父类的功能,但不能改变父类原有的功能。有以下几个引申含义:子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。子类中可以增加自己特有的方法。当子类的方法重载父类的方法时,方法的前置条件(方法的输入,入参)要比父类的入参更宽松。当子类的方法实现父类的方法时(原创 2022-04-13 11:12:39 · 5110 阅读 · 3 评论 -
设计原则之迪米特法则详解
一、迪米特法则定义一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则。意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量、方法的输入,方法参数的类被成为朋友类,其他无直接关联的类尽量少知道这些类。所以迪米特法则强调只和最亲的朋友类有联系,对其他类不交流二、举例理解老师想从学生那里知道假期一共留了几门作业,所以Teacher–>StudentA 是直接关系,老师调用学生,StudentA–>homework 是直接关系,但老师和课程Teacher–>h原创 2022-04-12 10:30:25 · 574 阅读 · 1 评论 -
设计原则之接口隔离原则详解
接口隔离原则定义用多个专门的接口分别定义方法,而不是使用一个总的接口定义一堆方法一个类对应一个类的依赖应该建立在最小的接口上尽量细化接口,接口中的方法尽量少不要建立庞大臃肿的接口类意思就是我们定义接口时候一个接口内定义的方法不能太臃肿 不能太多,一个接口中应该尽量少的贴合实际的去定义方法,避免在不同场景使用接口的时候实现一些根本用不到的方法,造成代码臃肿,可读性差,设计接口时候应该多思考,尽可能多考虑到不同的情况优点:符合我们常用的高内聚低耦合的思想,使我们的类具有很好的可读性,可扩展性原创 2022-04-11 17:36:31 · 548 阅读 · 0 评论 -
设计原则之单一职责原则详解
单一职责原则定义一个类、接口、方法只负责一项职责,不要存在多于一个导致类变更的原因这个原则指出对象不应该承担太多职责,如果一个对象承担了太多的职责,会至少存在以下两个缺点:一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。优点:使用好单一职责原则,可以降低类的复杂度,提高类的可读性,提高系统的可维护性,降低因变更参数引起的风险等。但使用单一职责原则也不是任何情况下都追求完全的遵守。该原创 2022-04-11 17:08:43 · 467 阅读 · 0 评论 -
设计原则之依赖倒置原则详解
依赖倒置原则定义高层模块不应该依赖低层模块,二者都应该依赖其抽象。程序要依赖于抽象接口,不要依赖于具体实现意思是应该面向接口编程,不应该面向细节编程。如果编写的程序是上层代码直接调用下层代码,当下层代码需要修改的时候,上层调用的代码也需要跟着变,会导致模块的复用性降低而且大大提高了开发的成本。如果建立抽象类,上层代码和下层代码都依赖抽象类,抽象类只要不变,细节再变化也不会影响调用代码。降低了耦合度,增加了程序的复用性。我们以以下例子来说明:直接调用下层代码例子如下:先写一个靓仔类,定义靓仔在原创 2022-04-11 15:52:52 · 645 阅读 · 0 评论 -
设计原则之开闭原则详解
一、开闭原则定义:一个软件实体如类、模块、函数应该对扩展开放,对修改关闭。用抽象构建框架,用实现实现细节。也就是说我们如果想实现某种变化,不应该修改原类或模块实现相应的功能细节,而是对原类或模块实体进行扩张 继承来具体实现某一变化。一个软件实体在使用过程中许多模块都会不断发生变化,以修改某商品价格为例,如果频繁修改原功能模块,则需要频繁打包上架重启,开闭原则可以提高软件系统的可复用性、灵活性和可维护性。下面我们用一个例子来理解开闭原则:先写一个课程接口,定义公共使用的方法/** * 定义个原创 2022-04-11 11:11:37 · 1533 阅读 · 0 评论 -
一篇文章让你彻底搞懂设计模式之单例模式
1.什么是单例模式单例模式就是确保一个类在任何情况下只有一个实例,并对外提供一个全局访问点,打个比喻来说 :单例模式就是你,我只有你这一个对象,你是独一无二的。全世界就一个,每个人要的时候都抢的是同一个,这是单例的概念单例模式同时也是23种设计模式中最简单的一种设计模式2.单例模式的介绍及实现方式在我们对单例模式有基本的想法和概念之后,我们来逐步深入的领略一下单例模式的魅力。既然单例模...原创 2019-11-18 21:31:53 · 461 阅读 · 0 评论