设计模式
文章平均质量分 57
Lframe
这个作者很懒,什么都没留下…
展开
-
每日设计模式之策略模式
策略模式:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。策略模式,简单地说就是:我们首先需要写一个接口,这个接口是用来定义我们的抽象策略。然后写几个类用来实现这个接口,在不同的实现类中实现不同的策略。接着再写一个Context类,让它和策略的接口是聚合关系。然后再在Context类中写一个方法,在方法中通过接口动态的调用各种策略策略模式的精华原创 2018-03-07 16:13:13 · 114 阅读 · 0 评论 -
每日设计模式之单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。 所谓职责就是引起类变化的原因,如果一个类有多余一个引起它变化的职责时,这是就违背了单一职责。说白了就是,一个类或模块应该有且只有一个引起它改变的原因。在软件设计的过程中,我们就是在发现职责,然后把这些职责相互分离。如果发现多于一个职责去改变类,则我们就要去考虑类的职责分离了,也就是每个类只能有一个职责。原创 2018-03-08 17:12:25 · 118 阅读 · 0 评论 -
每日设计模式之开放-封闭原则
开放封闭原则是指软件实体(类、模块、函数等)应该可以扩展,但是不可以修改。也就是说对扩展是开放的,对修改时关闭的! 在最初设计时,假设变化不会发生,然而当变化发生时,我们就创建抽象来隔离以后发生的同类变化。 也就是说,当软件出现新的需求时,我们是通过扩展代码来满足需求的,而不是通过修改原来的代码。 开放封闭原则是面向对象设计的核心所在。遵循这个原则可以使我们的软件可维护、可扩展、可复用、而且原创 2018-03-09 15:59:46 · 152 阅读 · 0 评论 -
每日设计模式之里氏代换原则
里氏代换原则:子类型必须能够替换掉他们的父类型。说白了就是子类型替换掉父类型后,系统的行为不会发生变化。也就是说,只有当子类可以替换掉父类,软件单位的功能不受影响时,父类才能被真正的复用,而子类也能够在父类的基础上增加新的行为。 正是由于有了子类型的可替代性,才使得使用父类型的模块无需修改的情况下就能够扩展。...原创 2018-03-10 16:55:37 · 151 阅读 · 0 评论 -
每日设计模式之依赖倒转原则
高层次模块不应该依赖于低层次模块,两个都应该依赖于抽象。 抽象不应该依赖于具体实现,而具体实现必须依赖于抽象。 也就是我们常说的“强内聚、低耦合”。在传统的面向过程开发中,高层模块调用低层模块,高层模块依赖于低层模块,当我们的低层模块变动时,上层模块也要跟着变动,这使用模块的复用性大大降低了。而在面向过程的开发中,无论是高层次模块,还是低层次模块,让他们全部依赖于抽象,依赖倒转原则其实原创 2018-03-10 17:35:21 · 166 阅读 · 0 评论 -
每日设计模式之简单工厂模式
简单工厂模式说白了就是把类的实例化封装到一个类的静态方法里面,通过传递给这个类的静态方法不同的参数,从而得到不同的实例。 简言之,就是一个用于加工生产各种对象的类。只需要通过传递参数就能得到相应的对象。简单工厂模式是属于创建型模式,又叫静态工厂方法模式原创 2018-03-06 14:05:58 · 142 阅读 · 0 评论 -
每日设计模式之代理模式
为其他对象提供一种代理以控制对这个对象的访问。代理模式: 代理和被代理的对象有着相同的行为,而被代理的对象通过和代理实现(合成)组合的关系,然后通过代理展示相应的行为。下面给出代码示例(代码取至维基百科): 代码解释:(你可以先看代码)我们首先需要定义一个接口,用于设定被代理对象的方法。代理和被代理对象都实现该接口,在被代理对象中的构造器实现正常的事务(即从硬盘...原创 2018-03-20 23:32:45 · 132 阅读 · 0 评论 -
每日设计模式之原型模式
原创 2018-05-10 12:00:18 · 169 阅读 · 0 评论 -
每日设计模式之工厂方法模式
工厂方法模式(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。**在简单工厂方法中,我们通常会通过在简单工厂类中给定一个方法,然后通过给这个类传递一个参数,然后再在这个方法中通过这个参数的值,在方法内部实例化不同的对象,从而达到了在工厂中创建对象的目的,从而避免了每次新建对象都要在外面实例化新的对象。但是,它的...原创 2018-04-28 12:37:35 · 132 阅读 · 0 评论