我在设计一个UI时,采用了模版引擎实现,为了隔绝和各模版引擎实现的依赖性,我对模版引擎进行了包装,抽象出一层接口层:
Template
- public interface Template {
- public void merge(Context context)throws MergeException;
- }
Context
java 代码
- public interface Context {
- public void clear();
-
- public abstract Writer getOut();
-
- public Object get(String key);
-
- public void put(String key,Object value);
- }
-
TemplateEngine
java 代码
- public interface class TemplateEngine{
-
- public void mergeTemplate(String templateName, Context context,
- Writer pWriter) throws MergeException;
-
- public abstract void mergeTemplate(Template template,
- Context context) throws MergeException;
-
- }
-
但是在各个实现包里却出现了一个非常晦涩的问题:
VelocityTemplateImpl
java 代码
- public class VelocityTemplate implements org.jwebap.ui.template.Template {
-
- private org.apache.velocity.Template _template=null;
-
- public CTLTemplate(org.apache.velocity.Template template){
- _template=template;
- }
-
- public void merge(Context context) throws MergeException {
- Writer writer=context.getOut();
- if(!context instanceof VelocityContext){
- throw new ClassCastException("...");
- }
- ...;
- }
-
- }
-
按照接口语义,对于传进来的任何Context实现,应该都能处理,但是这里确不得不判断是不是一个VelocityContext。
java 代码
分享到:
相关推荐
在软件开发中,接口设计模式是一种重要的设计模式,它定义了对象之间交互的边界,使得系统各部分可以独立地进行扩展和变化。本示例主要探讨接口设计的重要性、原则以及如何在实际项目中应用。 首先,接口是面向对象...
其次,工厂方法(Factory Method)模式是一种创建型设计模式,它提供了一个创建对象的接口,但让子类决定实例化哪一个类。这样,工厂方法可以使一个类的实例化延迟到其子类进行,增强了代码的可扩展性和灵活性。 ...
在本设计模式课程设计中,我们重点探讨了五个核心的设计模式:原型模式、单例模式、抽象工厂模式、代理模式和建造者模式。这些模式在Java编程中具有广泛的应用,能够帮助开发者创建更加灵活、可扩展和易于维护的代码...
《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...
《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书...综上所述,本书不仅是一本关于设计模式的入门书,也是对设计模式应用的深入探讨,无论是对于初级开发者、高级程序员,还是系统分析师,都能从中获得价值。
《新版设计模式手册 - C#设计模式(第二版)》是一部深入探讨C#编程中设计模式的权威指南,尤其适合已经有一定C#基础并希望提升软件设计能力的开发者阅读。设计模式是解决软件开发中常见问题的经验总结,是软件工程的...
设计模式是软件工程领域中一个极为重要的概念,它代表着一系列被广泛接受的解决特定问题的方法。GoF(Gang of Four)所提出的23种设计模式更是被视为面向对象编程的经典指南。本文旨在深入探讨这些设计模式,并结合...
本篇将深入探讨12种核心的设计模式,它们是:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式、适配器模式、装饰器模式、代理模式、桥接模式、组合模式、享元模式和观察者模式。 1. **单例模式**:确保一...
《GOF 23个设计模式》是一本深入探讨软件设计的经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,他们被业界尊称为“Gang of Four”(GOF)。这本书详尽阐述了23种经典的设计...
- **适配器模式**(第81页):该模式用于将一个类的接口转换成客户希望的另一个接口,从而使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。书中通过数据在列表之间的移动来举例说明适配器模式的应用。 -...
本话题“191 - 接口设计之美-通用性接口的组合应用a”着重探讨了如何通过巧妙地设计和组合通用接口来提升Android应用的灵活性和可复用性。 首先,接口设计的核心理念在于定义明确的契约,它描述了类或组件之间的...
本文将着重探讨创建型模式、结构型模式和行为模式这三大类设计模式,并结合六项设计原则进行深入解析。 首先,我们来看创建型模式。创建型模式关注于对象的创建,它们提供了创建对象的灵活方式,使得代码更具复用性...
《设计模式精解-GoF 23 种设计模式解析附 C++实现源码》是一本深入探讨软件设计模式的书籍,它涵盖了创建型、结构型和行为型三种主要类型的23个经典设计模式,并提供了C++语言的实现代码。设计模式是软件工程中的...
在串行模式下,数据通过一个时钟输入(CS)、数据输入/输出(DIN)和数据输出(DOUT)引脚进行传输。CS作为片选信号,DIN用于发送指令和数据,而DOUT则用于接收转换结果。设计中需要精确控制这些引脚的时序,以确保与ADC的...
工厂方法模式(Factory Method Pattern)定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个;抽象工厂模式(Abstract Factory Pattern)提供一个接口用于创建相关或依赖对象的家族,而不需要明确指定具体...
在这个“设计模式Java版”资料中,我们将会探讨一系列基于Java的设计模式。 首先,我们要了解设计模式的三大类:创建型模式、结构型模式和行为型模式。创建型模式包括单例模式、工厂模式(简单工厂、工厂方法、抽象...
在这个“设计模式之美”的学习笔记中,我们将探讨一些主要的设计模式,以及它们在实际开发中的应用。 首先,我们从创建型模式开始。这类模式主要用于对象的创建,如单例模式(Singleton)、工厂模式(Factory ...
通过以上内容可以看出,《深入设计模式》不仅涵盖了设计模式的基本概念和应用,还深入探讨了面向对象编程的基础知识以及软件设计原则,为读者提供了全面而深入的理解。无论是初学者还是有一定经验的开发者,都能从中...