Java工厂模式
来源:互联网 发布:带着淘宝混异界 叶忆落 编辑:程序博客网 时间:2024/06/05 01:04
================================================简单工厂模式================================================================
package com.cnse.test;
/**
* @author Administrator 简单工厂
* 所有实现类 需要实现的接口
*/
public interface Singer {
//接口的方法
public void say();
}
=================================================
package com.cnse.test;
public class StudentSender implements Singer{
@Override
public void say() {
System.out.println("我是学生我实现了,接口,我重写了,singer的方法......");
}
}
===========================================
package com.cnse.test;
public class TeacherSinger implements Singer{
@Override
public void say() {
System.out.println("我是老师我重写实现了 singer接口,我重写了方法......");
}
}
======================
package com.cnse.test;
/**
* @author Administrator
*简单工厂
*1.定义一个公共的接口 和方法
*2.让类去实现这个接口重写方法
*3.定义工厂类 ,定义接口实例的方法 判断传入的参数属哪个类 返回 这个类的对象
*静态工厂
*1.定义一个公共的接口 和方法
*2.让类去实现这个接口重写方法
*3.定义工厂类,定义接口实例的方法 直接返回这个对象
*抽象工厂
*1.定义一个公共的接口 和方法
*2.让类去实现这个接口重写方法
*3.
*/
public class Factory {
// 简单工厂
public Singer product(String type) {
if (type.equals("student")) {
return new StudentSender();
}
if (type.equals("teacher")) {
return new TeacherSinger();
}
return null;
}
}
===============================================静态工厂模式=================================================================
public class Factory {// 静态工厂
public static Singer ProduceStudentSinger() {
return new StudentSender();
}
public static Singer produceTeacherSinger() {
return new TeacherSinger();
}
}
================================================抽象工厂模式===============================================================
package com.cnse.test;public interface Provide {
public Singer produce();
}
===============
package com.cnse.test;
public class StudentFactory implements Provide{
@Override
public Singer produce() {
System.out.println("我是学生的工厂 我实现了调度接口.provide,,返回学生singer的代理对象....");
return new StudentSender();
}
}
================
package com.cnse.test;
public class TeacherFactory implements Provide{
@Override
public Singer produce() {
System.out.println("我是老师工厂我实现了调度接口provide,我要返回一个老师singer对象");
return new TeacherSinger();
}
}
==========
package com.cnse.test;
public class Test {
public static void main(String[] args) {
/**
* 简单工厂测试
*/
// get student instance
Factory f = new Factory();
Singer student_general = f.product("student");
System.out.println(student_general);
/**
* 静态工厂测试
*/
// get a student instance
Singer static_student = f.ProduceStudentSinger();
System.out.println(static_student);
/**
* 抽象工厂测试
*/
Provide p = new StudentFactory();
Singer si = p.produce();
System.out.println(si);
}
}
========================================================================================================================
- java工厂模式-简单工厂,工厂方法,抽象工厂模式
- Java工厂模式之简单工厂模式
- java中的工厂模式(简单工厂模式+工厂方法模式)
- 工厂模式(工厂方法模式,抽象工厂模式) Java
- java的工厂模式
- java工厂模式
- java工厂模式
- java 设计工厂模式
- Java 工厂模式设计
- Java工厂模式
- Java工厂模式
- Java工厂模式
- JAVA工厂模式详解
- java 工厂模式
- Java工厂模式
- java抽象工厂模式
- Java的工厂模式
- java主题:工厂模式
- POJ 3061 简单二分
- 机器学习 之 libsvm 参数说明
- 你不经历我的经历,怎么懂我的感受
- Ogre::scene_blend 场景混合
- ubuntu crontab详细介绍
- Java工厂模式
- Android Data Binding高级用法-Observable、动态生成Binding Class(三)
- php发送http请求的几种方法
- BOOL 和 bool 的区别
- 浅谈指针和引用
- go[x]agent在windows和ubuntu下的安装步骤
- word格式问题解决方法
- iOS 8.4越狱(iPhone6)
- .net日历控件 Calendar选择多个日期