0 0

设计模式的问题5

现在设计一个小票打印的程序.
小票打印机的型号不固定,有可能更换.
打印的小票的格式也不固定,请问应该如何设计类,使客户代码能够简单的调用.

小票打印机和我们用的一般打印机不太一样,使用方式是给打印机发送命令.
这里我已经奖小票打印机抽象出接口.

但是小票的格式有可能发生改变,我设计的小票类有一个打印方法.小票自己应该怎么打印自己.但是小票的信息和格式都不固定,所以我就办法设计出一个通用的小票类.如果信息固定就很简单了,让不同的小票实现自己的打印方法.但是小票不固定.信息变化了客户代码就变话了,我想知道有没有一个设计模式能解决这个问题.我刚学习模式,也不知道是不是这个地方不适合用模式.
2011年12月08日 19:32

1个答案 按时间排序 按投票排序

0 0

这个设计方案与设计模式关系不大吧,硬要说的话,也可以说用“模板方法”比较合适,就是你已经抽取的小票接口。

其实这个方案的核心问题在于如何根据客户指定的格式(当然,也要规定客户如何指定格式)和信息,打印出相应的小票。

如果是为了方便,可以直接要求小票的内容是图像形式,那样的话,随便客户怎么折腾,打印机都只管打印出图像就行了。尽管由于生成小票图像,速度上可能会有性能问题;但是由于现在打印机的速度相对比较慢,那一点点性能问题应该不会有影响。
有一点要注意:生成大量图像会占用许多内存,所以小票最好不要一次性生成太多,,或者增大 jvm 启动时的内存

这样基本上就可以确定小票的代码了:

public interface Receipt{
   Graphics  getPrintContent(Map context) throws Exception;
}


当然,你需要根据自己的要求再对这个接口进行具体的定制。

你可以看看 java.awt.print.Printable 的代码:

public interface Printable{
 
    int PAGE_EXISTS = 0;
    
    int NO_SUCH_PAGE = 1;

    int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
                 throws PrinterException;
}

2011年12月20日 16:13

相关推荐

    读书笔记:关于鸭子的游戏反映出的设计模式问题应用策略模式解决问题.zip

    读书笔记:关于鸭子的游戏反映出的设计模式问题应用策略模式解决问题

    人人都懂设计模式 人人都懂设计模式

    人人都懂设计模式 设计模式是软件开发中的一种解决方案,它提供了一种通用的设计思想和方法论,可以帮助开发者更好地设计和实现软件系统。设计模式可以分为三大类:创建型模式、结构型模式和行为型模式。 在本书中...

    设计模式的杰作:深入设计模式

    - **什么是设计模式**:设计模式是在软件设计过程中遇到的常见问题的一种解决方案。它提供了一种标准化的方法来解决问题,使得开发者能够更加高效地编写可维护、可扩展的代码。 - **为什么以及如何学习设计模式**:...

    24种设计模式以及混合设计模式

    设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式,并结合混合设计模式的概念,以及它们在实际项目中的应用案例。 首先,设计...

    GOF设计模式中英文+设计模式精解中英文

    设计模式是软件工程中的一种重要概念,用于解决在软件开发过程中常见的设计问题,提升代码的可复用性、可维护性和可扩展性。GOF(Gang of Four)设计模式,由Erich Gamma、Richard Helm、Ralph Johnson和John ...

    Head First 设计模式 +Java设计模式(第2版)

    设计模式是解决软件设计中常见问题的经验总结,它们提供了一种标准的方法来处理特定场景下的问题,使得代码更易于理解、维护和扩展。这两本书对于Java开发者来说尤其宝贵,因为它们不仅介绍了设计模式的概念,还提供...

    设计模式解析.pdf

    设计模式是软件工程领域的重要概念,旨在提供解决常见软件设计问题的模板或指导原则。《设计模式解析》这一标题暗示了书籍将深度探讨各种设计模式,包括其原理、应用及背后的思维逻辑,帮助读者掌握并灵活运用这些...

    设计模式之蝉

    在计算机科学领域,设计模式是软件工程中用于解决特定问题的一般性方案,它们是经过实践检验的最佳实践。这些模式被广泛应用于面向对象软件设计中,能够提高代码的可重用性、灵活性和可维护性。设计模式通常被划分为...

    设计模式(包含5个设计模式)含源代码报告.rar

    在软件开发领域,设计模式是经过时间和实践验证的解决方案,用于解决常见的编程问题。这个压缩包文件"设计模式(包含5个设计模式)含源代码报告.rar"显然是一份宝贵的资源,它涵盖了五个核心的设计模式,并附带了详细...

    新版设计模式手册 - C#设计模式(第二版)

    设计模式是解决软件开发中常见问题的经验总结,是软件工程的最佳实践之一。本手册将详细阐述23种经典设计模式,并结合C#语言特性,给出具体实现和应用示例。 首先,我们来了解一下设计模式的基本概念。设计模式是...

    《设计模式精解》.pdf

    设计模式是软件工程中解决特定问题的一般性方案,是软件设计中常见问题的最佳实践。《设计模式精解》系列专栏通过深入分析多种设计模式,帮助读者巩固和理解面向对象设计的核心思想。 在设计模式的分类中,首先介绍...

    java模式,设计模式,多种设计模式

    一个设计模式必然对应着一个特定的问题,以及该问题的解决方案和实施后的后果。在利用J2EE进行开发的过程中,人们将设计模式分为两类:一类是通用开发模式,另一类是为了应对特定J2EE问题的模式。 #### 四、设计...

    软件设计模式(java版)习题答案.pdf

    设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括模式名称、问题、解决方案和效果。 设计模式的优点 正确使用设计模式具有以下优点: 1. ...

    c嵌入式设计模式

    嵌入式系统设计模式是在嵌入式系统开发领域中,针对特定问题的解决方案的模板或模式。由于嵌入式系统具有资源有限、实时性强、安全性要求高等特点,因此在设计时往往需要使用特定的设计模式来应对这些挑战。本书《C...

    您的设计模式.pdf。

    在软件开发中,设计模式是一种解决特定问题的通用方法。它可以帮助开发者编写更加灵活、可维护、可扩展的代码。本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、多例模式、...

    JavaScript设计模式与开发实践.pdf

    同时,设计模式也可以帮助程序员解决软件设计中的问题,提高软件的质量和可维护性。 在本书中,作者还分享了自己在设计模式方面的研究和实践经验,包括设计模式的原型、设计模式的分类、设计模式的应用等,并提供了...

    MongoDB应用设计模式

    资源名称:MongoDB应用设计模式内容简介:无论是在构建社交媒体网站,还是在开发一个仅在内部使用的企业应用程序,《MongoDB应用设计模式》展示了MongoDB需要解决的商业问题之间的连接。你将学到如何把MongoDB设计...

    尚硅谷设计模式源码笔记课件.zip

    本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,...

    设计模式那点事

    设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决问题的可重用解决方案。《设计模式那点事》这本书的PPT为我们提供了一种深入理解和学习设计模式的途径。在这里,我们将深入探讨设计模式的核心概念、...

    六种微服务架构的设计模式.pdf

    数据共享微服务设计模式是一种解决微服务架构中数据共享问题的设计模式。在这种模式下,部分微服务可能会共享缓存和数据库存储。不过,这只有在两个服务之间存在强耦合关系时才可以。对于基于微服务的新建应用程序而...

Global site tag (gtag.js) - Google Analytics