设计模式
程序员Monkey
努力做好自己!!
展开
-
设计模式之小金的泡妞学(上)
在程序员的世界里,泡妞可真的是一门很大的学问,因为程序员天真单纯腼腆,不懂得套路,嘴巴也不会说,每天都沉浸和陶醉在代码的世界里,不亦乐乎,对于泡妞来说,基本上不怎么会,更不要说屌丝逆袭了,所以跟大家从设计模式的角度分享一下身边一位高人的泡妞绝学,开启小金同学的泡妞之路:【相遇之观察者模式】 在一个阳光明媚的清晨,桃花那个朵朵开,小金同学走过一座小桥边,遇到了一位弹琴的姑娘,...原创 2019-12-12 15:04:05 · 1417 阅读 · 0 评论 -
静态代理和动态模式
案例场景:1、一个售票站点,可以代买火车票,当我们需要买火车票的时候,我们可以自己去火车站买,也可以找售票点买火车票,在这里,我们可以把售票点视为代理类。从程序的角度上讲,我们就相当与一个对象,如果每个人都自己去火车站买票,那么要实现这个功能的话,相当与在每个对象中都要写上一个买票的方法,况且买票前后可能要做一些相关的操作,例如排队等候,退票等等,这样实现的程序代码重用性很高,所以我们可以把这原创 2012-03-23 10:16:28 · 995 阅读 · 0 评论 -
策略模式
实例场景:1、一位父亲有三个儿子,在临终签前告诉他们死后会留下的东西,分别给他们每人送了一个箱子,A儿子打开箱子需要解决一个问题能够拿到的是一栋别墅,B儿子打开箱子需要解决一个问题能够拿到的是一辆豪车,C儿子打开箱子需要解决一个问题能够拿到的是一笔巨款,在这个场景中我们用到了策略模式,下面详细说明。2、在java的集合框架中,我们有多钟排序算法,只要用户想要哪种排序,生成相应的排序类,然后原创 2012-03-31 09:43:46 · 1022 阅读 · 0 评论 -
组合模式
实例场景:我们平时操作文件夹的复制,无论是文件中包含文件或者文件中的子文件我们都会一并将其复制到相应的目录下面,在这个场景中我们使用了组合模式。组合模式:属于结构性模式,它描述了对象间的组合关系。对象间常常通过树结构来组织(包含)起来,以实现整体-部分的层次结构。整体上可以看做是一个组合对象。抛却各种复杂的术语。组合模式的特点是:对象通过实现(继承)统一的接口(抽象类),调用者对单一对象和原创 2012-04-05 10:49:36 · 1096 阅读 · 0 评论 -
适配器模式
实例场景:我们以前的电脑上键盘的usb接口有的是圆形的,现在假如这个接口坏了,用户想要更换一个,但市场上基本上是方形usb接口,很无赖,配不上号,这时,店主告诉用户不用担心,买一个转换器就行,转换器可以兼容圆形和方形接口,问题就解决了。这个场景用到了我们所说的:适配器模式Adapter模式的定义:把一个类的接口变换成客户端所期待的另外一种接口,使得原本由于接口不兼容而不能再一起工作的那些类可以原创 2012-03-28 11:10:00 · 1997 阅读 · 2 评论 -
模板方法模式
实例场景:假如我们要泡一杯热茶,我们得要准备杯子、准备开水、准备茶叶,当我们泡茶的时候,只要将茶和开水放进杯子里面就可以了,好了,大家都知道,每个人泡茶的方法会有所不同,比如准备的杯子大小不同、水的热度不同、茶叶的品种不同,这些每个人都会有每个人的做法,但是将茶和开水放进杯子里面都是一样的吧,哈哈..这个例子中我们运用到了典型的模板方法模式,看一下它的定义吧!摸板方法(Template Met原创 2012-04-06 09:47:58 · 1052 阅读 · 0 评论 -
工厂模式
案例场景:有一家汽车工厂,他们生产各类汽车,有小汽车、公交车、摩托车,举例就这三种吧,当生产商需要购买汽车的时候,直接从汽车工厂里面取,具体那些汽车是怎样制造出来的,厂商不用去管,他只需要看到要购买的汽车以及汽车质量有保证即可。在这个场景中用到了我们的简单工厂模式。在OO设计领域,我们知道前人总结了不少的经验,许多的经验在现代软件工程过程中已经被认为是原则来遵守。下面笔者摘抄几项下文涉及到的O原创 2012-04-01 11:57:21 · 1441 阅读 · 1 评论 -
设计模式的6大原则
一、单一职责原则(Single Responsibility Principle) 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完转载 2014-11-13 14:11:55 · 875 阅读 · 0 评论 -
命令模式
实例场景:1、餐馆点菜吃饭:当我们在餐馆进行点菜的时候,一般我们会进行点菜,然后服务员下订单,然后厨师根据订单进行炒菜,最后摆在我们面前的就是一盘美味佳肴了。2、领导下命令:领导要员工做事的时候,一般是把事情告诉秘书或行政人员,然后由她们把领导安排的事情下发到员工。3、当我们想要听音乐,只要我们按下播放键盘,相应的音乐就自动播放了。以上场景中我们都使用了一种设计模式:命令模式命原创 2012-04-09 10:34:35 · 1003 阅读 · 0 评论 -
观察者模式
实例场景:1、爱美之心人皆有之,一个美女在街上走,引起人们所关注,在这个场景中,美女是被观察者,而观察她的人属于观察者,当美女发现有很多观察她的人,然后大声叫了一句:今天真开心,这就会通知观察她的人,人们听到后就感觉到美女被自己关注感到很开心。 2、在java基础的awt或者swing中,常常有按钮点击事件,当我们给按钮注册一个事件监听器,注册的监听器类实现一个Listener接口,我们没原创 2012-03-27 11:57:46 · 1222 阅读 · 2 评论 -
常用设计模式总结及体现
在前面给大家详细介绍了java中常用的十种设计模式,下面对其进行一个总结:单例模式(Sington):一个类有且只有一个实例,分为两种,一种是懒汉式单例,一种是饿汉式单例,区别是懒汉式单例在需要的时候创建,而饿汉式单例是程序启动的时候就加载了。我们在进行JDBC连接数据库的时候可以使用单例模式。代理模式:静态代理(static proxy):真实对象和代理对象有共同的接口,代理对象角色内部原创 2012-04-09 14:56:48 · 1255 阅读 · 0 评论 -
单例模式
什么是单例模式:表示一个类中只有一个实例存在单例模式使用的好处:可以节省内存,因为它限制了实例的个数,有利于java垃圾回收实际案例:单例模式的三个重要的特点:1、确保自己只有一个实例 2、单例类必须创建自己的实例 3、单例类必须为其它的对象提供唯一实例常见单例模式的实现方式:懒汉单例类和饿汉单例类懒汉单例类:我们可以这样理解,该对象非常懒,只有当外部对象第一次请求原创 2012-03-22 09:40:47 · 1027 阅读 · 0 评论 -
装饰模式
实际案例:1、在我们现实生活中,我们会发现有很多种颜色,其实各种各样的颜色都是由三原色组合起来的,红黄蓝三种颜色,当我们随机搭配这三种颜色根据其程度又会出现各种各样不同的颜色,它里面实际上是一种组合,在这个里面,我们实际上使用了一种设计模式,装饰模式,类比我们的程序,将这三种颜色比作我们程序里面的三种不同的功能,当我们随机搭配的时候,就会完成不同的功能,看实际案例2。2、我们在java的I原创 2012-03-30 12:34:11 · 1066 阅读 · 0 评论