`
Aga
  • 浏览: 218536 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

比较有意思的一个模式

阅读更多
package org.cxz.designPattern.combo;

import java.io.BufferedInputStream;
import java.util.Properties;

public abstract class Father {
	private static final String configFilePath = "config.properties";
	private static final String key = "className";
	protected static String _className = null;
	static {
		try {
			Properties props = new Properties();
			props.load(new BufferedInputStream(Father.class
					.getResourceAsStream(configFilePath)));
			_className = props.getProperty(key);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public abstract void doBusiness();

	public static Father getInstance() {
		Father f = null;
		try {
			f = (Father) Class.forName(_className).newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return f;
	}
}

在程序中不需要关注具体的实现类。
package org.cxz.designPattern.combo;



public class Main2 {
	public static void main(String[] args) {
		Father.getInstance().doBusiness();
	}
}


package org.cxz.designPattern.combo;

public class Son extends Father {

	@Override
	public void doBusiness() {
		System.out.println("Do Business");
	}

}

className=org.cxz.designPattern.combo.Son
分享到:
评论

相关推荐

    基于 Redux 思想实现的单向数据流开发模式库, 如果对 Redux 不太了解的同学可以搜搜看,很有意思的一种模式.zip

    基于 Redux 思想实现的单向数据流开发模式库, 如果对 Redux 不太了解的同学可以搜搜看,很有意思的一种模式.zip,Unidirectional Data Flow in Swift - Inspired by Redux

    设计模式_简单易懂的例子,且很有意思

    单例模式确保一个类只有一个实例,并提供一个全局访问点。 **应用场景**: 当应用程序需要确保某些资源只被创建一次时,比如数据库连接池、日志对象等,可以使用单例模式。 **实现细节**: 单例模式可以通过构造器...

    收集的一些有意思的项目

    总的来说,这个压缩包提供了一个学习和探索JavaScript项目的机会,无论是对于初学者还是经验丰富的开发者,都有可能从中获取到有价值的知识和灵感。通过深入研究源码,你可以学习到实际项目开发中的最佳实践,理解...

    礼物小软件-超有意思

    【标题】"礼物小软件-超有意思"揭示了一个有趣且具有创新性的软件应用,它可以作为一个独特的礼物赠予他人,或者激发个人创作灵感。这个软件很可能包含互动性、趣味性或个性化定制的功能,使得它不仅是一个实用工具...

    精仿有意思吧PHP源码(类豆瓣清新风格)

    这个项目旨在创建一个具有类似豆瓣网用户体验的清新风格网站,适用于文学、情感、新鲜事等内容的分享。 1. PHP基础:PHP是一种广泛使用的服务器端脚本语言,用于动态网页开发。在这个项目中,PHP被用来处理用户请求...

    几个有意思的.NET

    "几个有意思的.NET"这个主题涵盖了几个特定的开发技术,包括3D图形处理、模拟QQ风格的交互设计以及日历控件的使用。这些技术在ASP.NET开发中尤为常见,用于提升用户体验和界面美观性。 首先,让我们探讨3D图层技术...

    Java23种设计模式(总结)

    - **定义**:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 - **适用场景**: - 当一个系统有多个子系统或者模块,每个子系统或模块负责一部分...

    生活有意思

    在"生活有意思"这个项目中,它们的结合使用显然是为了创建一个更加灵活和可维护的用户界面。 首先,`Adapter`的作用在于将数据集(如ArrayList)转换为可以显示在ListView、GridView或RecyclerView等视图中的格式。...

    javascript观察者模式Watch.JS.zip

    一个比较有意思的js库可以为javascript的对象实现观察者模式,以往我们使用javascript实现的观察者模式都是通过使用回调函数配合dom上的event事件来操作的,而“Watch.js”可以为javascript的对象实现观察者模式,...

    很有意思的vb编的小游戏 希望对大家学习vb有帮助

    VB(Visual Basic)是微软公司开发的一种编程语言,它基于Basic语言,专为初学者设计,具有直观易懂的界面和强大的图形处理能力。...因此,这个VB小游戏集不仅是一个怀旧的工具,更是VB学习者的宝贵资源。

    生活有意思demo

    【生活有意思】应用是一个以`UITableView`为核心的简单示例项目,旨在展示如何在iOS开发中构建一个具有低耦合度、易于调试和扩展的应用。在这个项目中,开发者将学习到如何利用Swift语言来构建用户界面,处理数据源...

    PHP中一些有意思的小知识

    然而,这在CGI模式下并无明显优势,因为每个请求都会启动新的PHP进程。在Apache模块模式下,如果并发请求不多,`mysql_pconnect()`可以提高性能,避免频繁建立新连接。但当并发量大时,过多的持久连接可能导致MySQL...

    touch bar piano 有意思的小玩具

    这款“有意思的小玩具”为音乐爱好者提供了一个随时随地演奏音乐的新途径。 Touch Bar钢琴的核心在于它的交互设计。在新款MacBook Pro上,Touch Bar取代了传统的功能键,成为了一块可自定义的触摸屏。这款应用将...

    学习 iOS 编译原理能做哪些有意思的事情.pdf

    iOS编译原理是一个复杂而深入的话题,它不仅涉及到软件开发的基本概念,还包括了编程语言、编译器设计、前端处理和后端优化等多个方面。学习iOS编译原理能够让我们更好地理解编程语言的运行机制,提高编程效率和质量...

    收藏的很有意思的bat命令

    - 使用`schtasks`命令可以创建、修改或删除计划任务,例如`schtasks /create /tn "MyTask" /tr "cmd.exe /c notepad" /sc daily /st 08:00`创建一个每天8点运行记事本的任务。 6. **文件查找与替换**: - `...

    有趣的面试题

    1. 如何阅读并理解一个大型开源项目的源码结构? 2. 分析一段JavaScript代码,解释闭包的作用和应用场景。 3. 遇到一段复杂的Java多线程代码,如何找出其中的并发问题? 4. 给出一段C++模板代码,解释其工作原理及...

    男女朋友价格计算器 - 计算你的朋友值多少钱,一款很有意思的娱乐软件

    男女朋友价格、价钱计算器,计算你的朋友值多少钱,一款很有意思的娱乐软件。免费、绿色免安装、便于U盘携带、支持多国语言。 * 男女朋友双向相互评价 * 支持年轻、中年两种感情模式 * 支持多种计算方式 * 可以...

    一些有意思的ICO图标

    1. **格式结构**:ICO文件的内部结构由一个头区和一个或多个图像块组成。头区包含了关于图像数量、大小等信息,而每个图像块则包含了一种尺寸或颜色深度的图标图像。 2. **图像数据**:ICO文件可以存储多种不同尺寸...

    reactnative实现识图功能和一些有意思的小功能

    `MobX`是一个声明式的反应式状态管理库,它可以使状态管理变得简单且可预测。在React Native项目中,我们可以使用`@observer`装饰器将组件与状态变化绑定,当状态改变时,组件会自动更新。同时,`@action`用于标记...

Global site tag (gtag.js) - Google Analytics