
设计模式
iteye_15720
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
工厂方法-FactoryMethod
工厂方法:将各种产品使用不同的工厂来生产,各种工厂中的创建方法可以互相独立地改变,并将这些工厂类抽象出一个共同的父类。 code:抽象类(或接口):public abrtract class Auto{ abstract public void run();} 实现类Car:public class Car extends Auto{ public Car(...原创 2012-08-31 12:33:09 · 115 阅读 · 0 评论 -
简单工厂-SinpleFactory
简单工厂:一个具体工厂通过条件语句创建多个产品,产品的创建逻辑集中在一个工厂类上。客户端通过传递不同的参数给工厂,实现创建不同产品的目的。增加新产品时,需要修改工厂类,这不符合OCP原则。 code:抽象类(或接口):public abrtract class Auto{abstract public void run();} 实现类Car:public clas...原创 2012-08-31 13:23:14 · 117 阅读 · 0 评论 -
单例模式-Singleton
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。两种实现方式:饿汉式:在类加载时被实例化,在多线程环境中不会产生多个实例public class Singleton{ private Singleton(){} private static Singleton instance=new Singleton(); public static Singleton...原创 2012-08-31 13:40:35 · 120 阅读 · 0 评论 -
代理模式-Proxy
代理模式:为其他对象提供一种代理以控制对这个对象的访问. 为什么要使用Proxy?1.授权机制 不同级别的用户对同一对象拥有不同的访问权利通过代理来控制这两种用户的访问权限.2.某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动.code: 代理对象:public class ProxyObject implements Object { Objec...原创 2012-08-31 13:54:02 · 118 阅读 · 0 评论 -
门面模式-Facede
门面模式:也叫外观模式。为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 1.当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越 复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容 易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用...原创 2012-08-31 13:58:51 · 212 阅读 · 0 评论 -
策略模式-Strategy
策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。 1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 2.需要使用一个算法的不同变体。 3.算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。 4.一个...原创 2012-09-01 10:14:09 · 100 阅读 · 0 评论 -
工厂模式与策略模式的比较
这两个模式很像,都是用一个专门的类来根据客户端的条件产生不同的类,实现不同的功能。简单工厂模式解决了对象的创建问题,工厂需要包括所有的产品对象的创建,如果产品对象形式经常变化,就需要经常改动工厂,以致代码重新修改编译。为了解决这个问题,策略模式就诞生了。 策略模式定义了一系列算法,分别封装起来,而不是像简单产品模式一样定义所有的产品类,让他们之间可以互相转换,此模式让算法的变化,而...原创 2012-09-13 23:44:07 · 116 阅读 · 0 评论