桥接模式在报表系统中的应用

简介: 报表系统是信息系统的重要组成部分,在编制报表系统时,我们希望报表生成器与报表的逻辑部分分离,这样不管采用何种报表 输出技术,业务逻辑部分都可以不受影响,例如在输出报表时,用户经常希望 与ms office 兼容,将报表输出到ms excel或ms word中而office系统的升级会导致报表系统的升级,为了提高应用系统的适应性,可以采用桥接模式,降低ms office 软件的升级对系统的影响.

报表系统是信息系统的重要组成部分,在编制报表系统时,我们希望报表生成器与报表的逻辑部分分离,
这样不管采用何种报表 输出技术,业务逻辑部分都可以不受影响,例如在输出报表时,用户经常希望 与ms office 兼容,
将报表输出到ms excel或ms word中而office系统的升级会导致报表系统的升级,
为了提高应用系统的适应性,可以采用桥接模式,降低ms office 软件的升级对系统的影响.

using  System;
using  System.Collections;
using  System.Data;
using  System.Drawing.Drawing2D;
using  System.Drawing;


namespace  ReportBridge
... {
    
public interface HReport
    
...{
        
void WriteTitle(string title);
        
void WriteAuthor(string author);
        
void WriteHead(ArrayList h);
        
void WriteContent(DataSet ds);
    }
 

    
public interface ReportWriter
    
...{
        
void NewReport(string filename);
        
void Write(int col,int row,string cotent,Font f,Color c);
        
void SaveReport();
    }


    
public class Report:HReport
    
...{
        
private ReportWriter m_writer;

        
public Report(ReportWriter t_rw)
        
...{
            m_writer
=t_rw;
        }



        
HReport 成员#region HReport 成员

        
public void WriteTitle(string title)
        
...{
            
// TODO:  添加 Report.WriteTitle 实现
        }


        
public void WriteAuthor(string author)
        
...{
            
// TODO:  添加 Report.WriteAuthor 实现
        }


        
public void WriteHead(ArrayList h)
        
...{
            
// TODO:  添加 Report.WriteHead 实现
        }


        
public void WriteContent(DataSet ds)
        
...{
            
// TODO:  添加 Report.WriteContent 实现
        }


        
#endregion


    }



    
public class BMPReportWriter:ReportWriter
    
...{
        
ReportWriter 成员#region ReportWriter 成员

        
public void NewReport(string filename)
        
...{
            
// TODO:  添加 BMPReportWriter.NewReport 实现
        }


        
public void Write(int col, int row, string cotent, Font f, Color c)
        
...{
            
// TODO:  添加 BMPReportWriter.Write 实现
        }


        
public void SaveReport()
        
...{
            
// TODO:  添加 BMPReportWriter.SaveReport 实现
        }


        
#endregion


    }


    
public class ExcelReportWriter:ReportWriter
    
...{
        
ReportWriter 成员#region ReportWriter 成员

        
public void NewReport(string filename)
        
...{
            
// TODO:  添加 ExcelReportWriter.NewReport 实现
        }


        
public void Write(int col, int row, string cotent, Font f, Color c)
        
...{
            
// TODO:  添加 ExcelReportWriter.Write 实现
        }


        
public void SaveReport()
        
...{
            
// TODO:  添加 ExcelReportWriter.SaveReport 实现
        }


        
#endregion


    }


    
public class Invoker
    
...{
        
public void Run()
        
...{
            BMPReportWriter m_brw
=new BMPReportWriter();
            HReport m_r
=new Report(m_brw);
            m_r.WriteAuthor(
"myauthor");
             

        }

    }

 
}
相关文章
|
2月前
|
设计模式 开发框架 监控
精准解读桥接模式-用桥接模式构建可扩展的软件系统
桥接模式是一种设计模式,旨在将抽象和实现部分分离,使它们可以独立地变化。这种模式的目的是提高系统的灵活性和可扩展性。桥接模式的主要思想是将抽象和实现通过一个桥接类连接起来,从而实现它们的解耦。在这种模式中,抽象部分可以根据需要进行扩展,而实现部分可以自由地变化,而不影响彼此。桥接模式在处理多个独立变化的维度、解耦继承关系、处理平台差异和扩展现有系统等方面具有广泛的应用领域。通过使用桥接模式,可以提高系统的可维护性和可扩展性,使系统更加灵活和适应变化。通过桥接模式,将系统中的抽象部分与实现部分解耦,从而...
82 0
精准解读桥接模式-用桥接模式构建可扩展的软件系统
|
2月前
|
设计模式 XML API
掌握工厂方法模式,打造灵活多变的软件生产线
本文深入探讨了工厂方法模式在软件开发中的应用与优势,帮助读者掌握这一设计模式,进而打造灵活多变的软件生产线。文章首先介绍了工厂方法模式的基本概念和原理,通过生动的例子解释了该模式如何在不修改代码的情况下创建不同对象。接着,文章详细分析了工厂方法模式的特点和优势,包括降低对象之间的耦合度、提高系统的可扩展性和可维护性等。最后,文章结合实际案例,阐述了如何在项目中运用工厂方法模式来构建高效、灵活的软件架构。本文内容深入浅出,既适合初学者入门学习,也能为有经验的开发者提供有价值的参考。通过掌握工厂方法模式,您将能够更有效地应对软件开发中的挑战,实现更优质的软件产品。
32 2
|
9月前
|
设计模式
使用桥接模式设计复杂的消息系统
举个例子,我们在平时办公的时候经常通过邮件消息、短信消息或者系统内消息与同事进行沟通。尤其在走一些审批流程的时候,我们需要记录这些过程以备查。根据类型来划分,消息可以分为邮件消息、短信消息和系统内消息。但是,根据紧急程度来划分,消息可以分为普通消息、加急消息和特急消息。显然,整个消息系统可以划分为两个维度,如下图所示。
38 0
|
2月前
|
开发者 数据格式
【软件设计师备考 专题 】设计系统功能:系统结构和子系统
【软件设计师备考 专题 】设计系统功能:系统结构和子系统
67 0
|
2月前
|
设计模式 存储 API
C++桥接模式大解析:轻松设计与实现高效软件架构
C++桥接模式大解析:轻松设计与实现高效软件架构
167 0
|
10月前
|
设计模式 算法 搜索推荐
工厂+策略模式:让生活更便捷的秘密武器
在日常生活中,我们经常面临选择的困扰,比如选择适合自己口味的咖啡,选择合适的手机品牌等等。而工厂+策略模式就是一种能够帮助我们做出更好选择的秘密武器。本文将以生活化的语言,介绍工厂+策略模式的意义,并举例说明其在日常工作中的应用场景。
96 0
|
设计模式 供应链 对象存储
设计模式在业务系统中的应用(1)
设计模式在业务系统中的应用
112 0
|
设计模式 Java Spring
设计模式在业务系统中的应用(2)
设计模式在业务系统中的应用
|
JSON 数据库 数据格式
如何在业务开发中使用适配器模式?
适配器模式(Adapter Pattern):将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。