![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大话设计模式
小灰灰的部落
这个作者很懒,什么都没留下…
展开
-
第二章 策略模式
面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 收费对象生成工厂 策略模式strategy:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。 商场收银时如何促销,用打折还是返利,其实都是一些算法,用工厂来生成算法对象,这没有错,但是算法本身只是一种策略,最重要的是这些算转载 2012-10-23 15:09:58 · 497 阅读 · 0 评论 -
第六章 装饰模式
装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式是java编程中比较常见的设计模式。在java.io包下很多输入输出类都用到了装饰模式。 例: InputStreamReader isr = new InputStreamReader(new FileInputStream(file));原创 2012-11-02 10:49:28 · 349 阅读 · 0 评论 -
第四章 开放封闭原则OCP
开放封闭原则,是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。 对于扩展是开放的 对于修改是封闭的 无论模块是多么的封闭,都会存在一些无法与之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。 等到发生变化时立即采取行动。 在我们最初编写代码时,假设变化不会发生。原创 2012-10-23 18:02:24 · 540 阅读 · 0 评论 -
第五章 依赖倒转原则
依赖倒转原则 A.高层模块不应该依赖底层模块。两个都应该依赖抽象。 B.抽象不应该依赖细节。细节应该依赖抽象。 针对接口编程,不要对实现编程。 里氏代换原则:子类型必须能够替换掉他们的父类型。 正是由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。 依赖倒转其实可以说是面向对象设计的标志,用哪种语言来写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针转载 2012-10-30 16:18:35 · 263 阅读 · 0 评论 -
第三章 单一职责原则
单一职责原则SRP 就一个类而言,应该仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。 软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离ASD 如果你能够想到多余一个的动机去改变一个类,那么这个类就具有多余一个的原创 2012-10-23 17:44:35 · 292 阅读 · 0 评论 -
第一章 简单工厂模式
通过封装、继承、多态把程序的耦合度降低 用设计模式使得程序更加的灵活,容易修改,并且易于复用 如果去实例化对象的问题,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。 简单工厂:将实例化具体的对象的过程由客户端转移到工厂类中完成。 UML图、 继承类用空心三角形+实现表示 实现接口用空心三角形+虚线表示 当一个类知道另一个类时,可以用关联association,关联原创 2012-10-23 14:02:55 · 482 阅读 · 0 评论 -
第七章 代理模式
代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 代理模式使用场景非常多,如面向切面编程(Spring中的AOP),虚代理模式(hibernate中的懒加载),保护代理(权限服务控制),远程代理(Java中的RMI技术)等。 代理模式的介绍:http://xmong.iteye.com/blog/1559922 在实现数据库连接池机制的时候可以使用到代理模原创 2012-11-07 11:49:50 · 403 阅读 · 0 评论 -
第十七章 适配器模式
适配器模式Adapter:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。 在大话设计模式中,Clinet就是例子中的教练,Target就是NBA球员,姚明(Adaptee)不会英语,需要(Adapter)翻译帮忙才能听懂教练和球员说的话。 test.java Player wjym = new Translator原创 2012-11-09 17:09:52 · 368 阅读 · 0 评论