码迷,mamicode.com
首页 > 编程语言 > 详细

Java结构型的几种模式

时间:2017-02-19 13:58:58      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:使用   对象引用   设计模式   开放   接口   过程   定义   代理模式   核心   

一、工厂模式的分类
      工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。

     工厂模式在《Java与模式》中分为三类:
     1)简单工厂模式(Simple Factory);又称为静态工厂方法模式
                                             GOF在《设计模式》中一般把简单工厂模式和工厂方法模式合为一类
     2)工厂方法模式(Factory Method):省去了静态属性,可以子类继承

     3)抽象工厂模式(Abstract Factory)
     
   简单工厂模式
      1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。

      2) 抽象产品角色:它一般是具体产品继承的父类或者实现的接口。在java中由接口或者抽象类来实现。

      3) 具体产品角色:工厂类所创建的对象就是此角色的实例。在java中由一个具体类实现。   
      
   工厂方法模式  
      1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。

      2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。

      3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。

      4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
      
   抽象工厂模式
     1)系统中有多个产品族,而系统一次只可能消费其中一族产品。
     2)同属于同一个产品族的产品以其使用。
   
   来看看抽象工厂模式的各个角色(和工厂方法的如出一辙):
     1)抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。

     2)具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。

     3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。

     4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。   
     
  二、装饰模式和代理模式的区别
     1)都实现了基础对象的接口,在自身都保存着被代理/被装饰者的的对象引用
     2)装饰者模式的责任是扩展功能,代理模式是主要控制访问
     
    装饰者的定义:动态的将责任附加到被装饰者对象上,用于扩展功能上,比继承更加灵活,典型的如java IO设计即是装饰者模式的典型应用。
    代理模式定义:对其他对象进行代理,以控制被代理的对象访问,Spring为业务逻辑层方法生成的代理类,主要进行一些事物控制等。
 
  三、门面模式
     1)定义一个(或多个)具备所需接口的新类(门面类)
     2)新类门户使用原来的系统
     3) 客户使用门面类对象与原系统打交道
     
    门面模式的定义:提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
         
          缺点:不符合开闭原则。所谓的开闭原则是软件工程里面一个最基本的原则:对扩展开放,对修改关闭。换句话说,你的系统可以提供新的功能模块而不必进行修改。  
    

Java结构型的几种模式

标签:使用   对象引用   设计模式   开放   接口   过程   定义   代理模式   核心   

原文地址:http://www.cnblogs.com/wzlc/p/6415459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!