设计模式
明月几时有1116
这个作者很懒,什么都没留下…
展开
-
UML中几种类间关系:继承、实现、依赖、关联、聚合、组合的联系与区别
继承实现依赖可以简单的理解,就是一个类A使用到了另一个类B,而这种使用关系是具有偶然性的、、临时性的、非常弱的,但是B类的变化会影响到A;比如某人要过河,需要借用一条船,此时人与船之间的关系就是依赖;表现在代码层面,为类B作为参数被类A在某个method方法中使用;关联他体现的是两个类、或者类与接口之间语义级别的一种强依赖关系,比如我和我转载 2013-02-28 11:26:18 · 477 阅读 · 0 评论 -
面向对象的5个基本设计原则
面向对象的3个基本要素:封装、继承、多态面向对象的5个基本设计原则:单一职责原则(Single-Resposibility Principle) 其核心思想为:一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。职责过多,可能引起它变化的原因就越多,这将转载 2016-07-22 16:46:28 · 324 阅读 · 0 评论 -
java设计模式(十五)--桥接模式
一、什么是桥接模式Bridge 模式又叫做桥接模式,是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象(abstraction)与行为实现(implementation)分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。二、桥接模式的结构三、转载 2014-02-21 09:25:58 · 822 阅读 · 0 评论 -
改善代码质量的6种重构模式
Kumar是位涉猎广泛的软件工程师,对很多技术领域都有非常高的热情,如Java/JEE、PHP、.NET、C/C++等程序设计语言、移动编程语言、应用安全、云计算、API、移动应用、Google Glass、大数据等等,其Twitter帐号是@eajitesh。近日,Kumar撰写了一篇文章,谈到了常见的代码坏味道以及改善代码质量的6种重构模式,并对每种重构模式的使用场景进行了详尽的论述与讨论转载 2014-02-19 10:11:41 · 770 阅读 · 0 评论 -
Head First设计模式-简单工厂模式
一、简单工厂模式 PizzaStore.java[java] view plaincopypublic class PizzaStore { SimplePizzaFactory factory;//多用组合,少用继承 public PizzaStore(SimplePi转载 2014-03-13 21:20:41 · 664 阅读 · 0 评论 -
Java 单例模式
单例模式对于频繁使用的对象,可以省略创建对象所花费的时间,这对于那些重量级对象而言,是非常可观的一笔系统开销,另外由于 new 操作的次数减少,因而对系统内存的使用频率也会降低,这将减轻 GC 压力,缩短 GC 停顿时间。常应用于读取配置文件,sessionFactory等场景。原创 2016-03-31 16:06:45 · 404 阅读 · 0 评论 -
适配器(Adapter)模式
适配器模式(Adapter Pattern)[GOF95]把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。问题:我们已经在应用程序中设计了接口sampleOperation1, 然后我们又为了加快开发而购买了可以很好的完成此功能的第三方库, 然而第三方库的接口sampleOperation2和我们设计的接口sampleOperat转载 2013-02-27 17:51:32 · 483 阅读 · 0 评论 -
设计原则
http://blog.csdn.net/hosterzhu?viewmode=contents原创 2016-07-21 15:37:28 · 337 阅读 · 0 评论 -
编程中如何避免if(object!=null)判空语句
1.确定不会返回null的对象,可以不判空,如果脏数组导致报空,下面的逻辑也没必要执行,有必要的话可以try catch来处理2.需要判空的地方,3.好的设计原创 2016-06-27 13:42:19 · 2728 阅读 · 0 评论 -
Head First -- 工厂方法
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。这样,客户程序中关于超类的代码就和子类对象创建代码解耦了。主要示例代码:01 public abstract class PizzaStore {02 public Pizz转载 2014-03-14 22:15:26 · 768 阅读 · 0 评论 -
代理(proxy)模式
为其他对象提供一种代理以控制对这个对象的访问,比如执行前后加一些逻辑,如proxy类subjectpublic interface Object { void action();}realSubjectpublic class ObjectImpl implements Object { public void action()转载 2013-02-28 09:21:30 · 490 阅读 · 0 评论 -
命令模式(command)
命令模式适应于一组对象他们的操作形式非常的类似,这个时候我们可以把对象的行为进行抽象,抽象成命令对象,实现解耦commandpublic abstract class Command { protected Receiver receiver; public Command(Receiver receiver) { this.转载 2013-02-28 10:51:15 · 393 阅读 · 0 评论 -
模板方法
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。AbstractClass public abstract class Template { public abstract void print(); public void update() { System.out.println("开始打印"); for (int转载 2013-04-01 11:42:54 · 593 阅读 · 0 评论 -
浅析java callback 回调模式
看过spring、hibernate源码的朋友对callback回调模式应该并不陌生,用一句话来概括就是:“if you call me, i will call back”,说白了,就是有相互依赖关系的两个类之间的互相调用,现在看看下面的代码模型: package com.cuishen.callback;public class Context implements A.Callbac转载 2013-04-01 11:46:07 · 889 阅读 · 0 评论 -
java中匿名内部类的两种实现方式
使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。下面通过代码来说明: Java代码 public class TestAnony转载 2013-06-25 11:13:10 · 1093 阅读 · 0 评论 -
Head First设计模式-抽象工厂模式
一、整体代码 PizzaStore.java[java] view plaincopypublic class PizzaStore { PizzaFactory factory;//多用组合,少用继承 public PizzaStore(PizzaFactor转载 2014-03-13 22:06:34 · 719 阅读 · 0 评论 -
java设计模式--观察者模式和事件监听器模式
监听器模式:事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法观察者模式:观察者(Observer)相当于事件监听者,被观察者(Observable)相当于事件源和事件,执行逻辑时通知observer即可触发oberver的update,同时可传被观察者和参数监听器模式demo1、首要定义事件源对象(事件源相当于单击按钮事件当中的按钮对象转载 2013-04-08 11:18:44 · 57593 阅读 · 8 评论