
设计模式
设计模式
神科
come on
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式 - 抽象工厂模式
定义:是一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可生产多个等级的产品特点:系统中有多个产品族,每个具体工厂创建同一族但属于不同等级结构的产品。 系统一次只可能消费其中某一族产品,即同族的产品一起使用。优点:可...原创 2020-01-07 14:13:51 · 129 阅读 · 0 评论 -
设计模式 - 工厂模式
定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。特点:用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程; 在系统增加新的产品时只需要添加具体产品类和对应的具体工厂类,无须对原工厂进行任何修改,满足开闭原则;结构:抽象工厂(Abstract Factory):提供了创...原创 2020-01-07 11:38:26 · 105 阅读 · 0 评论 -
设计模式 - 原型模式
定义:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象特点:用这种方式创建对象非常高效,根本无须知道对象创建的细节结构:抽象原型类:规定了具体原型对象必须实现的接口。 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象。 访问类:使用具体原型类中的 clone() 方法来复制新的对象。实现:原型模式的克隆分为浅克隆和深克隆,J...原创 2020-01-03 16:45:05 · 108 阅读 · 0 评论 -
设计模式 - 单例模式
定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式特点:单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点;结构:单例类:包含一个实例且能自行创建这个实例的类。 访问类:使用单例的类实现:懒汉式单例:类加载时没有生成单例,只有当第一次调用 getlnstance 方法时才去创建这个单例(volatile修饰)...原创 2020-01-03 11:21:49 · 118 阅读 · 0 评论 -
设计模式 - 开闭原则
定义:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求这里的软件实体包括以下几个部分:1、项目中划分出的模块2、类与接口3、方法作用对软件测试的影响:软件测试时只需要对扩展的代码进行测试就可以了可以提高代码的可复用性:粒度越小,被复用的可能性就越大;在面向对象的程序设计中,根据原子和抽象编程可以提高代码的可复用性。...转载 2020-01-02 15:45:57 · 114 阅读 · 0 评论 -
设计模式 - 里氏替换原则
定义里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范作用里氏替换原则是实现开闭原则的重要方式之一。它克服了继承中重写父类造成的可复用性变差的缺点。它是动作正确性的保证。即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。实现方法子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除...转载 2020-01-02 15:46:48 · 104 阅读 · 0 评论 -
设计模式 - 依赖倒置原则
定义【通过要面向接口的编程来降低类间的耦合性】:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upo...原创 2020-01-02 15:46:08 · 143 阅读 · 0 评论 -
设计模式 - 单一原则
定义单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分(There should never be more than one reason for a class to change)作用单一职责原则的核心就是控制类的粒度大小、将对象解耦、提高其内聚性。如果遵循单一职责原则将有以下优点。降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。...原创 2020-01-02 15:45:45 · 211 阅读 · 0 评论 -
设计模式 - 接口隔离原则
定义(两种定义)客户端不应该被迫依赖于它不使用的方法(Clients should not be forced to depend on methods they do not use)。 一个类对另一个类的依赖应该建立在最小的接口上(The dependency of one class to another one should depend on the smallest possibl...原创 2020-01-02 16:03:29 · 259 阅读 · 0 评论 -
设计模式 - 迪米特法则
定义只与你的直接朋友交谈,不跟“陌生人”说话(朋友:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。)作用:迪米特法则要求限制软件实体之间通信的宽度和深度降低了类之间的耦合度,提高了模块的相对独立性。 由于亲合度降低,从而提高了类的可复用率和系统的扩展性。实现方法在类的划分上,应该创...原创 2020-01-02 16:49:47 · 154 阅读 · 0 评论 -
设计模式 - 合成复用原则
定义又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP)。它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。作用:可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能它维持了类的封装性。因为成分对象的内部细节是新对象看不见的,所以这种复用又称为“黑箱”复用。 新...原创 2020-01-02 16:59:26 · 232 阅读 · 0 评论