
大话设计模式
bless295
人一我十,人十我万,永不放弃——kuangbin
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
大话设计模式----工厂模式
最近博主再看java的设计模式,今天学习了工厂模式,结合看的书和网上搜的资料,大体明白了工厂模式是怎么一回事。 工厂设计模式,考虑一个单独的类来做这个创造实例的过程,这就是工厂设计模式。 工厂设计模式分为简单工厂设计模式和抽象工厂设计模式,网上一部分人认为只有抽象工厂设计模式才是真正的设计模式,不过大部分人在用简单设计模式,那么这两种设计模式的区别在哪里呢: 简单工行设计模式: 一个抽象产原创 2017-10-22 20:52:02 · 398 阅读 · 0 评论 -
大话设计模式----单一职责原则
现代世界电子产品层出不穷,手机的发展更是迅速,手机功能越来越多,可以说手机集成了MP3,摄像机,甚至一些电脑的功能等等等等,其实,大多数时候,一件产品简单一些,职责单一一些,或许是更好的选择,这就和设计模式中的一大原则,单一职责的道理是一样的。 单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因。 我们为什么要使用单一职责原则呢? 其实,如果一个类承担的职责过多,就等于把这些原创 2017-10-24 19:50:25 · 291 阅读 · 0 评论 -
大话设计模式----依赖倒置原则
今天我们先来总结一下面向对象的四大好处,是可维护,可扩展,可复用和灵活性好。 然后我们来说一说依赖倒置原则,有的地方也翻译为依赖倒转原则: A.高层模块不应该依赖底层模块。 B.抽象不应该依赖细节,细节应该依赖抽象。 这个定义可能有一些绕了,简单来说,我们要针对接口编程,而不要对实现编程。 那么为什么叫做倒置或者倒转呢? 在面向过程的开发中,为了使得常用代码可以复用,一般都会把这些常用原创 2017-10-25 13:44:08 · 338 阅读 · 0 评论 -
大话设计模式----里氏代换原则
里氏代换原则(LSP):子类型必须能够替换掉它们的父类型。 我们理解一下,里氏代换原则就是一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为不发生变化,简单的说,子类型必须能够替换掉它们的父类型。 正是因为有了这个原则,使得继承复用成为了可能,只有当子类可以替换掉父类,软件单位的功能不受到影响原创 2017-10-25 13:52:46 · 370 阅读 · 0 评论 -
大话设计模式----迪米特法则
面向对象编程一共就有五大原则,前面讲了四个,今天终于学到第五个了。 迪米特法则,也叫接口分离原则,又名最少知识原则。 迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。 定义的意思就是说程序的模块之间要通过抽象接口来隔离开,而不是通过具体的类强耦合起来。 迪米特法则首先强调的前原创 2017-11-04 20:18:16 · 298 阅读 · 0 评论 -
大话设计模式----观察者模式
我觉得以我现在的水平,还不够对这个模式了解的足够深刻,虽然我知道这个模式是什么了,但是可能理解上还有一些欠缺,建议大家看完这篇博客还能再去搜一些资料来使自己对这个模式了解的更为深刻一些。 我们现在说说什么是观察者模式: 观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动的更新自己。原创 2017-11-18 20:40:54 · 312 阅读 · 0 评论 -
大话设计模式----建造者模式
最近让一些事情耽误了,好久没有看设计模式的书了。今天晚上就好好的学一下。 今天学习了建造者模式,这个模式不算难,就是写的还不太熟练。 那么什么叫做建造者模式呢? 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 我还是感觉建造者模式的UML类图比较好理解: 我们现在来看这个类图,对于用户来说,我不管你是怎么构建的,我就只是看结果,这个就是叫复杂对原创 2017-11-18 20:14:39 · 286 阅读 · 0 评论 -
大话设计模式----模板方法模式
首先先强调,这是一个很常用过的设计模式,基本在一些程序员的手里随处可见这种模式的影子,所以很重要。 我们先来强调一下继承的意义,如果我们用了继承,并且肯定这个继承有意义,那么这个父类就应该要成为子类的模板,所有重复的代码都应该要上升到父类上去,而不是让每个子类都去重复。 那么我们什么时候用模板方法模式呢?(模板方法模式的应用场景) 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个原创 2017-11-04 20:04:44 · 237 阅读 · 0 评论 -
大话设计模式----工厂方法模式
我们先来回顾一下简单工厂模式 http://blog.csdn.net/bless924295/article/details/78313146 这是我的关于工厂模式的博客,里面有一个关于运算的例题,我们今天还是用这个例题。 简单工厂模式UML类图: · 我们再来看一下工厂方法模式关于运算类的UML类图: 好,我们把两张类图放在一起来看,首先,他们有很大的不同对不对,其次,你会发现原创 2017-10-25 15:00:46 · 268 阅读 · 0 评论 -
大话设计模式----代理模式
代理模式:为其他对象提供一种代理以控制对这个对象的访问。 代理模式的UML类图: 到底代理模式是个什么呢?就是让别人来控制类,你控制别人然后间接的控制类。 说白了,代理就是真实对象的代表。 代理模式用在一些什么场合呢? 第一:远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。 第二:虚拟代理,是根据需要创建开销很大的对象,原创 2017-10-25 14:37:52 · 272 阅读 · 0 评论 -
大话设计模式----装饰模式
装饰模式:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式的UML类图: Component是定义一个对象接口,可以给这些对象动态的添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Compon原创 2017-10-25 14:17:04 · 261 阅读 · 0 评论 -
大话设计模式----原型模式
原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式结构图: 原型模式其实就是从一个对象再创建另外一个可制定的对象,而且不需要知道任何细节。 .NET在System的命名空间里提供了ICloneable接口,其中唯一的方法就是Clone(),这样我们只需要实现这个接口就可以完成原型模式了。 那么原型模式的优点在哪里呢,加入我们有很多对象,那么每new一次原创 2017-11-01 13:43:03 · 293 阅读 · 0 评论 -
大话设计模式----策略模式
今天博主看了设计模式之策略模式,果然每一个策略模式都有它的用途,都是一种很精辟的算法。 我们先来看一个实例: 要求做一个商场收银软件,营业员根据客户所购买的商品的单价和数量,来向客户进行收费。 这直接写肯定很简单了,但是考虑昨天的问题,写出的代码真的是一个好且优的代码吗? 我们先来考虑用工厂模式实现,你会惊讶的发现,工厂模式也可以实现这个代码,并不是很麻烦到不能实现,也不是不可以使用工厂模原创 2017-10-23 20:33:27 · 810 阅读 · 0 评论 -
大话设计模式----外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式的UML类图: 外观模式是一种很常用的设计模式,可能在很多时候使用它,它完美的体现了依赖倒转原则和迪米特法则的思想,是一个非常常用的设计模式之一。 外观模式使用在什么时候呢? 首先,在设计的初期阶段,应该要有意识的将不同的两个层分离,层与层之间建立外观Facade,原创 2017-11-04 20:52:03 · 319 阅读 · 0 评论