
设计模式
遮不住的殇
勤能补拙
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
第02篇 单一职责原则
一、介绍单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因.单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用...原创 2019-08-21 15:34:50 · 215 阅读 · 0 评论 -
第01篇 设计模式开山篇
一、设计模式的目的编写软件过程中,程序员面临着耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的:代码重用性 (即:相同功能的代码,不用多次编写)可读性 (即:编程规范性, 便于其他程序员的阅读和理解)可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)使程...原创 2019-08-18 10:17:13 · 204 阅读 · 0 评论 -
第03篇 接口隔离原则
一、定义接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口;二、特点根据接口隔离原则,当一个接口太大时,我们需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担一种相对独立的角色,不干不该干的事,该干的事都要干三、案例某公...原创 2019-08-21 21:42:45 · 239 阅读 · 0 评论 -
第12篇 单例模式
一、概念单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模式。单例模式有三个要点:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例单例通常又分为两种模式:饿汉式:在加载的时候就创建出来,着急创建出来。懒汉式:需要使用...原创 2019-08-25 17:51:11 · 237 阅读 · 0 评论 -
第11篇 抽象工厂模式
一、概念抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式为了方便理解,引入一些概念:(1) 产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔电视机、海信电视机、TCL电视机,则抽象电视机与具体品牌的电视机之间构成了一个产品等...原创 2019-08-25 17:45:32 · 311 阅读 · 0 评论 -
第10篇 工厂方法模式
一. 概述工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。工厂方法模...原创 2019-08-25 17:43:41 · 395 阅读 · 0 评论 -
第09篇 简单工厂模式
一、概述简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,因此简单工厂模式又被称为静态工厂方法(Static Factory Method)模式。简单工厂模式是一种创建型模式。二、结构图简单工厂通过一个工厂类接受调用者的入参来决...原创 2019-08-25 17:42:05 · 336 阅读 · 0 评论 -
第08篇 合成复用原则
一、定义合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的,又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP)。二、特点合成复用原则就是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有...原创 2019-08-24 21:51:02 · 280 阅读 · 0 评论 -
第07篇 迪米特原则
一、定义迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP)二、特点如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就会尽量少地影响其他模块,扩展会相对容易,这是对软件实体之间通信的限制,迪米特法则要求限制软件实体之间通信的宽度和深度...原创 2019-08-24 21:40:18 · 258 阅读 · 0 评论 -
第06篇 开闭原则
一、定义开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。二、特点OCP中所说的软件实体可以指一个软件模块、一个由多个类组成的局部结构或一个独立的类。为了满足开闭原则,需要对系统进行抽象化设计,抽象化是开闭原则...原创 2019-08-24 21:38:29 · 308 阅读 · 0 评论 -
第05篇 里氏代换原则
一、定义里氏代换原则的定义有两种:完整定义如果对每一个类型为S的对 象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的 行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解。通俗版定义里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类 (父类)的地方必须能透明地使用其子类的对象。...原创 2019-08-24 12:20:09 · 311 阅读 · 0 评论 -
第04篇 依赖倒置原则
一、定义依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。二、特点依赖倒转原则要求我们在程序代码中传递参数时或在关联关系中,尽量引用层次高的抽象层类,即使用接口和抽象类进行变量类型声明、参数类型声明、方法返回类型声明,以及数据类型的转换等,而不要用具体类来做这些事情。...原创 2019-08-24 11:38:50 · 270 阅读 · 0 评论