设计模式
文章平均质量分 90
为了让代码更加可靠及学会优化代码的方式,我们一定需要了解设计模式。在学习中掌握设计模式原则和23种相关的设计模式。
写代码的克总
道阻且长,行则将至
展开
-
一天一个设计模式---分类与六大原则
介绍23中设计模式的分类方式。详细说明设计模式中的六大原则---单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、开闭原则。原创 2016-08-31 14:37:19 · 4407 阅读 · 1 评论 -
一天一个设计模式---访问者模式
平时在进行绩效考核的时候,CEO和CTO进行比较的东西是不同的。比如CEO只关心业绩,而CTO关心代码质量,项目成果。如果将考核写成一个方法进行维护,会有大量的逻辑判断,代码不美观且难以维护。原创 2016-12-05 10:20:48 · 1205 阅读 · 2 评论 -
一天一个设计模式---备忘录模式
在玩红白机的Pokemon–宠物小精灵,卡boss的时候我们常常会用,SL(存/读)大法,这里的存盘读盘就和备忘录模式很相似。原创 2016-11-30 15:20:06 · 914 阅读 · 0 评论 -
一天一个设计模式---迭代器模式
使用Array、List、Map我们一般都会进行迭代操作,现在照着源码,来实现自定义的迭代器。原创 2016-11-22 22:14:34 · 955 阅读 · 0 评论 -
一天一个设计模式---中介者模式
我们去租房子时,每次价格变动的时候,房东通知下面的各个有意向的房客,而我们又需要对每个房东进行反馈。这样,一个房客和每个房东,以及一个房东和每个房客的关系都紧密相连。如果我们通过中介,中介会帮我们处理这些事情,就显得相对简单。原创 2016-11-22 22:09:45 · 1138 阅读 · 0 评论 -
一天一个设计模式---抽象工厂模式
继续上篇文章讲述Pizza供应商和工厂的故事。原创 2016-09-08 14:55:26 · 1573 阅读 · 1 评论 -
一天一个设计模式---生成器模式
玩过《我的世界》这类沙盒游戏的玩家,很多都是冲着其开放式的制作功能去的。比如,我们要建造一个房子就需要很多东西。使得同样的构建过程可以创建不同的表示场景:我们在创建对象时可能会碰到过一个问题,比如,如果需要赋值的属性过多,构造函数会很多,而且有的会很长。通过JavaBean的方式可能不需要担心构造函数,但是,我们的set部分又会很长很难看。这样我们就能使用生成器模式。原创 2016-09-27 21:33:22 · 2380 阅读 · 2 评论 -
一天一个设计模式---工厂方法模式
讲述Pizza供应商和工厂的故事。原创 2016-09-07 23:00:45 · 1283 阅读 · 0 评论 -
一天一个设计模式---原型模式
小米买了PSP,如果小明买的PSP和小米的使用的是同个对象,那么小明对其操作会导致小米的PSP也造成同样的改变。为了改变这种局面,我们就应该在应用中使用原型模式。原创 2016-10-08 21:34:50 · 1519 阅读 · 0 评论 -
一天一个设计模式---单例模式
介绍:从字面上我们就能看出需要实现的功能—保证类只有一个实例,并提供一个访问此实例的方法。优点: 1. 频繁使用的对象,可以减少创建对象所消耗的时间。 2. new操作次数的减少,对系统内存的使用频率也会减少,从而减轻GC压力,缩短GC停顿时间。一、懒汉式简述:懒汉式单例 在使用的时候去判断单例是否已经存在,然后再调用实例或创建实例 在懒汉式中需要考虑并发问题1. 不使...原创 2016-08-31 21:12:23 · 1662 阅读 · 0 评论 -
一天一个设计模式---适配器模式
小明从香港买了港版的iphone7 puls,回家发现插头用不了,但是通过转换头我们就能解决这个问题。原创 2016-09-14 09:40:16 · 1190 阅读 · 1 评论 -
一天一个设计模式---桥接模式
举个桥梁的例子来说明。首先,说下原来的业务,中国建筑师只会造中国桥,美国建筑师会造美国桥。但是中国建筑师牛逼啊,学会了美国桥的建造。如果没有使用桥接模式,可能代码上会有很多问题。原创 2016-10-14 15:08:14 · 1317 阅读 · 0 评论 -
一天一个设计模式---组合模式
我们平时常用的dom4j框架其实其中就使用了组合模式来实现各个节点。我们就大致模仿,制作一个简单的xml框架。原创 2016-10-17 15:37:42 · 1451 阅读 · 0 评论 -
一天一个设计模式---装饰者模式
通过奶茶哥哥开奶茶店的例子来说说装饰者模式原创 2016-09-09 16:18:36 · 990 阅读 · 0 评论 -
一天一个设计模式---外观模式
如果让我们来制作一个苹果手机,我们需要实现拍照、视频聊天、通话的功能。通过外观模式,相当于对外提供了几个接口,拍照、视频聊天、通话的接口,而具体的内部处理,用户并不需要关心。原创 2016-10-25 10:00:22 · 1227 阅读 · 0 评论 -
一天一个设计模式---享元模式
这是在这么多种设计模式中极少的以提高程序性能为目的的模式。其主要思想为—如果系统中存在多个相同对象,那么只需要一份对象的拷贝,而不必在每次使用的时候去新建一个对象。原创 2016-09-07 13:27:48 · 1074 阅读 · 0 评论 -
一天一个设计模式---代理模式
让我通过成龙大哥和经纪人的故事来讲解静态代理。通过JDK动态代理和CGLIB动态代理详细说明动态代理的实现方法。原创 2016-09-03 00:53:00 · 1109 阅读 · 0 评论 -
一天一个设计模式---责任链模式
当时学习时,十分神秘的拦截器/过滤器,现在我也终于有思路去实现了!原创 2016-11-03 16:00:02 · 1240 阅读 · 0 评论 -
一天一个设计模式---命令模式
用命令模式来实现一个2D飞行射击游戏,能左右按钮躲避敌人的子弹,切换武器,射击。原创 2016-11-08 13:50:03 · 1403 阅读 · 0 评论 -
一天一个设计模式---解释器模式
对于语法的解释,是十分复杂的,比如打造一款计算器,我们需要让程序知道加减乘除和数字的关系,这个时候就可以用到解释器模式原创 2016-11-16 11:09:09 · 1136 阅读 · 0 评论 -
一天一个设计模式---观察者模式
班里的同学在玩手机,聊天,而殊不知老师就在窗边观察着。原创 2016-09-11 22:56:58 · 1327 阅读 · 0 评论 -
一天一个设计模式---状态模式
有些生存类游戏,比如《饥荒》中树木生长就是一个非常复杂的过程。现在我们就来模拟树木生长过程。原创 2016-09-20 21:39:20 · 1447 阅读 · 0 评论 -
一天一个设计模式---策略模式
介绍:将具体的算法封装到独立的类中,当我们需要使用不同的策略时,只需要给执行对象提供不同的策略就行了。场景:VR是现在很火的产品,一套好的VR设备是十分昂贵的,在初期由于市场供不应求,可能买来设备的价格高于官方报价。过了一段时间,卖家会降价,再过段时间,VR的势头过去,堆积的商品会进行促销。这个时候我们就可以使用策略模式,在不同时期,对于商品使用不同的价格策略来对价格进行调控。优点: ...原创 2016-09-21 17:50:43 · 1850 阅读 · 2 评论 -
一天一个设计模式---模板方法模式
对于多个业务,它们的业务中有很多功能是相似的,有部分功能需要独自实现。这样我们就可以使用模板方法模式,将功能打散,抽取出更小的功能块,并减少重复代码。原创 2016-09-26 16:21:58 · 1740 阅读 · 0 评论