设计模式
屌程
无奈的90后
展开
-
漫谈设计模式之抽象工厂模式(Abstract Factory)
什么是抽象工厂模式?抽象工厂模式和工厂方法模式一样都是属于创建型设计模式。抽象工厂为创建一组相关的或相互依赖的对象提供一个接口,而无需指定它们具体的类。抽象工厂模式与工厂方法模式的区别:抽象工厂模式是工厂方法模式的升级版本,它用来创建一组相关的或者相互依赖的对象,而工厂方法模式只能创建某一个具体的对象。它与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针原创 2017-04-01 09:47:12 · 354 阅读 · 0 评论 -
漫谈设计模式之责任链模式(Chain Of Responsibility)
概念Chain Of Responsibility(CoR)模式也叫责任链模式,是行为模式之一。该模式构造一系列分别担当不同的职责的类对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称为责任链模式(或者职责链模式)。责任链模式类结构图Handler: 处理类的抽象父类;ConcreteHandler:具体的处理类;实例代码代码完成一个造车流程:造车头,造车身,造车尾。非责任链模式...原创 2018-04-24 20:52:30 · 579 阅读 · 0 评论 -
漫谈设计模式之命令模式(Command)
概念Command模式也叫命令模式,是行为设计模式的一种,Command模式通过被称为Command的类封装了对目标对象的调用行为以及调用参数。 在面向对象的程序设计中,一个对象调用另一个对象,一般情况下的调用过程是:创建目标对象实例-->设置调用参数-->抵用目标对象的方法。但在有些情况下有必要使用一个专门的类对这种调用过程加以封装,我们把这种专门的类称作command类。整个调用过...原创 2018-04-23 00:53:56 · 400 阅读 · 0 评论 -
漫谈设计模式之模板模式(Template)
概念模板模式(Template Method)也叫模板方法模式,属于行为型设计模式之一。它把具有特定步骤算法中的某些必要的处理委让给抽象方法。通过子类继承对抽象方法的不同实现改变整个算法的行为。模板方法模式结构图从结构图中我们可以看出父类(抽象类)除了提供给子类一套接口外还多了一个TemplateMethod()方法,这个方法也叫模板方法用于管理其他接口的调用顺序。也就是说,在抽象类中统一操作步骤...原创 2018-04-22 15:52:55 · 334 阅读 · 0 评论 -
漫谈设计模式之享元模式(Flyweight)
什么是享元模式?享元模式是构造型设计模式之一,它通过与其他类似对象共享数据来减少内存使用。享元模式的角色和职责:享元模式(Flyweight)中有一个类似Factory模式中的对象构造工厂FlyWeightFactory,当客户端程序员(client)需要一个对象的时候就会向FlyWeightFactory发出请求对象的消息getFlyweight()消息,FlyweightF原创 2017-04-21 10:14:37 · 763 阅读 · 0 评论 -
漫谈设计模式值外观模式(Facade)
什么是外观模式?外观模式也叫做门面模式。Gof给出的定义是:将子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。打个比方,就好比你在linux写的c/c++代码,你要编写makefile文件,然后执行make命令进行编译;但是,很多IDE比如Visual Studio,Qt Creator都会提供一个构建(Build)按钮去完成这一系列操作。这个原创 2017-04-25 16:49:03 · 378 阅读 · 0 评论 -
漫谈设计模式之装饰模式(Decorator)
什么是装饰模式(Decorator)?装饰模式又叫装饰者模式属于结构型设计模式之一。在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰(对象)来包裹真实的对象。装饰模式的设计原则:1.多用组合,少用继承。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可原创 2017-04-28 15:10:03 · 395 阅读 · 0 评论 -
追MM与设计模式(23种设计模式巧妙解析,趣味理解)--微信公众号(程序员共读)
创建型模式1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂转载 2017-04-28 10:31:42 · 388 阅读 · 0 评论 -
漫谈设计模式之原型模式(Prototype)
什么是原型模式?原型(Prototype)模式是一种对象创建型模式,它采取复制原型对象的方法来创建对象的实例。使用Prototype模式创建的对象实例具有与原型一样的数据。具体体现在:(1)由原型对象自身创建目标对象,也就是说,对象创建这一动作发自原型对象本身;(2)目标对象是原型对象的一个克隆,也就是说,通过原型模式创建的对象,不仅仅与原型对象具有相同的结构,还与原型对象具有相同的值。(3)根据原创 2017-04-12 16:54:35 · 395 阅读 · 0 评论 -
漫谈设计模式之观察者模式(Observer)
这段时间一直在看设计模式方面的书籍,就想着写写博客记录一下自己的心得~~~对于为什么要学设计模式楼主深有体会,当你发现自己的类与类之间的联系太过紧密(紧耦合)具体的体现就是业务上的小改动你就要频繁的改代码设置重构的时候说明你的代码很有可能是硬编码或者设计不好的。学习设计模式能够让你的代码耦合性更松,更牛逼,而且很多牛逼的开源项目都是频繁的用到这些牛逼的设计模式和设计思想,学会了设计模式你就可以原创 2017-03-16 09:58:34 · 497 阅读 · 0 评论 -
漫谈设计模式之建造者模式(Builder)
建造者模式(Builder)又叫生成器模式,属于对象创建型模式。建造者模式的目的是要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(产品)。说得通俗点就是一个产品(表示)的构建(生产)过程是一样的,但是同样的生产过程却可以生产出不同的表示(产品)。比如,建房子都要做门窗,砌墙等流程,但是同样的流程(做门窗、砌墙)造出来的房子可能是公寓也可以是别墅。建造者模原创 2017-04-11 14:35:05 · 425 阅读 · 0 评论 -
漫谈设计模式之单例模式(Singleton)
什么是单例模式?单例模式顾名思义就是确保一个类在内存中只有一份实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。这时候有人会抬杠说我就用一个全局变量(类)不就也是一个单例,根本不需要设计模式。但是这样的代码是很优雅的。使用全局变量是可以保证方便的访问实例,但是不能保证只有一个这个变量的实例---除了通过这个全局实例2外,还是可以创建该类的局部(本地)实例,这样其实就不是严格原创 2017-04-07 09:57:31 · 383 阅读 · 0 评论 -
漫谈设计模式之工厂方法模式(Factory Method)
工厂方法和简单工厂一样都属于对象创建型模式。什么是工厂方法模式?工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口。这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。工厂方法模式和简单工厂的区别:工厂方原创 2017-03-30 14:52:51 · 457 阅读 · 0 评论 -
漫谈设计模式之简单工厂模式
什么是简单工厂模式?简单工厂模式属于类的创建型模式,又叫静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例。被创建的实例通常都具有共同的父类。简单工厂模式中包含的角色及其职责----1、工厂(creator)角色:工厂角色是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。----2、抽象(abstract produc原创 2017-03-29 16:36:03 · 423 阅读 · 0 评论 -
漫谈设计模式之策略模式(Strategy Pattern)
概念Strategy模式也叫策略模式是行为型模式之一。它对一系列算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略)。Strategy模式主要用来平滑地处理算法的切换。策略模式结构图Strategy: 策略算法抽象;ConcreteStrategy: 各种策略(算法)的具体实现;Context: 策略的外部封装类...原创 2018-04-25 22:12:22 · 304 阅读 · 0 评论