设计模式
文章平均质量分 75
设计模式是根据本人在学习《大话设计模式》时候写的一些总结,设计模式就给代码解耦,提高代码的灵活性、复用性和可维护性。设计模式是基础知识,程序员必学的内容,也是程序员的学习过程中很重要的一部粉。设计模式里我已写了10篇博客,并且还在继续写关于设计模式的总结
引渡
越努力,越幸运
展开
-
【设计模式】——单例模式
目录介绍饿汉模式懒汉模式对比扩展双重检索机制静态内部类实现枚举类实现介绍单例模式是软件设计模式之一,保证一个类只有一个实例。实现这样的需求的方法是:构造方法私有,在类内创建一个静态对象,并创建一个公有的静态方法来访问这个对象。单例模式的常见的实现模式有饿汉模式和懒汉模式。饿汉模式特点:在类定义的时候就实例化,线程安全。但是占用内存空间。应用场景:在访问量比较大或者多线程的时候采用实例...原创 2019-11-28 12:51:43 · 274 阅读 · 2 评论 -
商场促销—策略模式
总算是看完了一遍《大话设计模式》,到了实践的时候了。对于初学C#的我来说,真的是遇到了一些困难,怎么一打开代码编写窗口,都不知道从哪行开始写代码,非常错乱的感觉。但是经过这半个月的学习与实践,这些问题也不再是问题了。 从附录A就开始敲书上的例子,到现在进行的策略模式,我也算是得到了一些经验。 策略模式(strange):它定义了算法家族,分别封装起来,让它们之间可以相互替换,此原创 2014-12-07 14:10:39 · 2813 阅读 · 13 评论 -
简单工厂模式见编程艺术
大四的小菜同学接受了面试,用了10分钟不到的时间,就把计算器控制台程序编好了。速度之快,代码无错,也就只能说明小菜同学的基本功很好。但是他却面试受挫,这是为什么呢? 一、代码毛病和规范 命名不规范,数字A、B、C、D直接用A、B、C、D表示,在改进之后应该是numberA、numberB、numberC、numberD。代码不是自己能够看懂就行的,更多的是给别人看的。判断分原创 2014-12-15 21:40:13 · 1249 阅读 · 14 评论 -
编程艺术之策略模式
一、商场促销 策略模式讲的是商场收银软件,是Windows窗体应用程序。在这个程序里首先声明了一个double变量total来计算总计,然后声明一个double变量totalPrices来计算每个商品的单价(txtPrices)*数量(txtNum)后的合计,将每个商品合计计入总计在列表框中显示信息,最后在lblRsult标签上显示总计数。 在策略模式中体现的思想是,面向对象的原创 2014-12-16 17:14:12 · 1063 阅读 · 9 评论 -
设计模式六大原则
在大话设计里有六种原则:单一职责原则、开放-封闭原则、依赖倒转原则、里氏代换原则、迪米特法则和合成/聚合复用原则。这六种原则各有其特点,那它们是用来做什么的?在软件设计的过程中它们起了什么作用,什么时候情况下用到它们,我觉得这些都是我们需名称是什么做什么作用单一职责原则就一个类而言,应该仅有一个引起它变化的原因原创 2014-12-19 15:02:13 · 1511 阅读 · 18 评论 -
编程艺术之装饰模式
当我们需要把所需的功能按正确的顺序串联起来进行控制时,我们就会用到装饰模式。装饰模式就是动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。下面看一下装饰模式的结构图 Component是定义一个对象接口,可以给这些对象动态的添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象原创 2014-12-20 11:58:51 · 1175 阅读 · 13 评论 -
代理模式
在代理模式中,作者给我们讲了个为别人做嫁衣的故事。这个故事告诉我们在代理模式里应该要有三者,这样才能可以说是代理模式,也就是李娇娇、戴励和卓贾易三者谁都不能少,卓贾易是追求者,李娇娇是被追求者,戴励是代理追求者。小菜的第一版代码里只有追求者和被追求者,形成不了代理模式。第二版代码里,小菜又出错了,只有代理和被追求者。在第三版的代码里,小菜总算是写出了代理模式。原创 2014-12-20 16:42:05 · 1077 阅读 · 12 评论 -
简单工厂上看工厂方法
一、简单工厂 到底要实例化谁,将来会不会增加实例化的对象,应该考虑用一个单独的类来做这个创造实例的过程。简单工厂就是实例化出合适的对象。 二、工厂方法 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟大其子类。 三、简单工厂vs工厂方法 简单工厂先加一个功能类,然后去更原创 2014-12-20 20:51:14 · 1234 阅读 · 13 评论 -
编程艺术之原型模式
一、原型模式分析 原型模式就是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。也就是说原型模式就是从一个对象再创建另外一个可定制的对象,而且不需知道任何创建的细节,而且不需知道任何创建的细节。 在原型模式中Clone方法是一个很重要的方法,Clone方法也是抽象类的关键。在原型模式的结构图中可以看出,Prototype是原型类,声明原创 2014-12-21 10:39:40 · 1508 阅读 · 13 评论 -
编程艺术之模板方法模式
在模板方法模式里讲的是选择题抄写的程序,在这个小程序里,如果不注意方法的使用的话,就会出现很多重复的代码,这样就导致了代码量大,容易出错,却不容易修改维护。但是用了模板方法就避免了这些错误。 一、考题抄写 试题中有很多重复的地方,所以我们要做的就是避免写重复的代码。重复的代码应该应用到继承这一思想来避免重复的代码,我觉得这就是写一次代码可重复用,在复用的时候需要修改的地方还要可原创 2014-12-21 12:09:59 · 1010 阅读 · 16 评论 -
编程艺术之外观模式
外观模式这个模式讲了一个关于投资的故事,使我这个股票不懂,基金不懂的人也懂了一点关于这方面的东西。股票和程序一样耦合性不能太高了。 一、从股票到基金 如果新手买股票就容易亏损,因为新股民没有足够了解证券知识的情况下做股票。股民要了解股票的各种信息,需要预测它的未来,还要买入和卖出的时机合适。股民自己投资股票,于是对众多股票的联系太多,反而不利于操作。也就是说股民和股票的耦合度过原创 2014-12-21 21:47:10 · 1062 阅读 · 18 评论 -
设计模式总结(一)
设计模式是针对面向对象设计的复杂性问题所提出的能做出应对变化、提高复用的设计方案。昨天晚上师父给我验收大话设计模式的时候,问了我为什么把23种设计模式分为创建型、结构型和行为型三种模式,当时我答不上来,就到网上查找了一翻。 由于设计模式在粒度和抽象层次上各不相同,所以设计模式的分类是根据目的和范围两个准则来进行划分的。 创建型Creational原创 2015-01-01 16:16:44 · 1126 阅读 · 15 评论 -
设计模式总结(二)
上一篇博客的总结算是帮我理解了为什么把23个模式分为创建型、结构型和行为型三种类型。这一篇博客要好好屡屡这23个模式了。 一、创建型模式 1、不换数据库——抽象工厂模式(Abstract Factory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 2、好菜每回味不同——建造者模式(Builder):将一个复杂对象的构建与原创 2015-01-01 19:52:12 · 1193 阅读 · 18 评论