浅谈工厂设计模式

设计模式

操作方法

  • 01

    基本概念: 1)  Simple Factory模式属于创建型模式, 2)  简单工厂模式是由一个工厂(注意是一个!)对象决定创建出哪一种产品类的实例 (例如你到肯德基说你要鸡腿,要薯条,要饮料还是,,,这时肯德基是一 个工厂,客户端只需要点明自己要什么就行) 3)实现方式的实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类 (这些产品类继承自一个父类或接口)的实例。 下面来看一个例子: 音乐盒接口IMusicBox: package SimpleFactory; public interface IMusicBox { public void play(); } 两种不同的音乐盒播放方式:ViolinBox(小提琴)和 PianoBox(钢琴): package SimpleFactory; public class ViolinBox implements IMusicBox { public void play() { System.out.println("拨放小提琴音乐^_^"); } } package SimpleFactory; public class PianoBox implements IMusicBox { public void play() { System.out.println("拨放钢琴音乐:)"); } } 下面是一个工厂MusicBoxFactory(Simple Factory的核心,在工厂中根据客户端指定的 参数动态创建不同的对象): 复制代码 package SimpleFactory; public class MusicBoxFactory { public static IMusicBox createMusicBox(String name) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ // 这边使用的是Java的Reflection机制来产生实例 // 不过客户端不用管啦 // 以后就算改变了这边的程式,客户端程式是不用更改的 return (IMusicBox) Class.forName(name).newInstance(); } } 下面客户端就可以利用工厂模式:(利用工厂模式,客户端只需要对工厂指定你要创建的 对象的名字(参数),工厂就可以根据你指定的参数动态创建不同的对象) package SimpleFactory; public class MusicBoxDemo { public static void main(String[] args) throws Exception { // playMusicBox(MusicBoxFactory.createMusicBox("PianoBox")); // playMusicBox(MusicBoxFactory.createMusicBox("ViolinBox")); //利用工厂模式,客户端只需要对工厂指定你要创建的对象的名字(参数), 工厂就可以根据你指定的参数动态 //创建不同的对象。当然,这些不同的对象就有不同的表现(在本例中通过play 表示) playMusicBox(MusicBoxFactory.createMusicBox("SimpleFactory.PianoBox")); playMusicBox(MusicBoxFactory.createMusicBox("SimpleFactory.ViolinBox")); } public static void playMusicBox(IMusicBox musicBox) { musicBox.play(); } }

(0)

相关推荐

  • 浅谈开微店的技巧 想开微店做微商但是不知道微店怎么开?

    微店怎么开,对一些中小卖家来说还是丈和尚摸不着头脑。其实很简单。一部智能手机,两分钟的事就可以成功开设一家自已的微店,那么今天我就来浅谈一下如何开微店。 微店,很可怕。将来有可能会垄击淘宝,因此聪明的 ...

  • java-面试经验浅谈

    很多刚入行的java开发者经常面临面试,不知道面试的范围,不了解实际开发中的侧重点,以及企业面试官的面试侧重点.下面是我根据自己的经历总结的我觉得挺经典.全面的java面试问题.希望对初学者有帮助 总 ...

  • "图"说天下:浅谈图片搜索功能

    随着360综合搜索不断地开拓进取之后,新上线了图片搜索功能。百度图片搜索每天的百度预计流量为781万4070,这还仅仅只是百度来的预计流量,实际上更多。搜索引擎市场的竞争是多元化的,不仅仅是搜索结果的 ...

  • 浅谈12 条用于 Linux 的 MySQL/MariaDB 安全最佳实践

    MySQL 是世界上最流行的开源数据库系统,MariaDB(一个 MySQL 分支)是世界上增长最快的开源数据库系统.在安装 MySQL 服务器之后,在默认配置下是不安全的,确保数据库安全通常是通用数 ...

  • 浅谈新手选择使用Linux桌面的七个注意点

    这个问题没有轻松的答案,如果你是新用户,之前没有用过任何Linux桌面,更是这样.围绕这个话题而写的文章大多数也没有多大帮助,因为它们主要阐述什么最适合新用户使用,而不是帮助新用户自行确定.要是你用过 ...

  • 浅谈2017年Linux 的五大痛点

    到目前为止,糟糕的文档是 Linux 用户最头痛的问题.这里还有一些其他常见的问题. 正如我在 2016 年开源年鉴的“故障排除提示:5 个最常见的 Linux 问题”中所讨论的,对大多数用户而言 L ...

  • 浅谈为什么磁盘慢会导致Linux负载飙升

    一.CPU利用率和负载率的区别 这里要区别CPU负载和CPU利用率,它们是不同的两个概念,但它们的信息可以在同一个top命令中进行显示.CPU利用率显示的是程序在运行期间实时占用的CPU百分比,这是对 ...

  • 浅谈为你的 Linux 服务器加把锁

    无论你使用的哪种 Linux 发行版,你都需要使用基于 iptables 的防火墙来保护它. 啊哈!你已经设置好了你的第一台 Linux 服务器并且已经准备发车了!是么?嗯,慢着. 默认情况下,你的 ...

  • 浅谈管理linux开机自启服务的一些技巧

    自启动服务非常重要,例如 (1)需要手动添加希望自启的服务,如安装svn后没有自动添加,就需要我们手动加入 (2)安装某些程序后,自动加到自启动了,但我们不需要,需要手动移除 (3)很多恶意程序都会把 ...