Factory(Abstract Factory)
来源:互联网 发布:全能数据恢复免费版 编辑:程序博客网 时间:2024/05/18 00:13
/**
*
*/
package com.sean.factory.abst;
import com.sean.factory.Sex;
/**
* @author Sean_Zhang
*
*/
public class PersonAbstractFactory {
public static IPerson getPerson(Sex sex,boolean isMarried) {
IPerson person = null;
if(sex == Sex.MALE) {
person = new Man(isMarried);
} else if(sex == Sex.FEMALE) {
person = new Woman(isMarried);
}
return person;
}
}
package com.sean.factory.abst;
import com.sean.factory.Sex;
public class Man extends Person {
public Man(boolean isMarried) {
super(isMarried);
}
public IName getName() {
return new ManName();
}
public IPartner getPartner() {
IPartner partner = null;
if(isMarried()) {
partner = new WomanPartner();
}
return partner;
}
public Sex getSex() {
return Sex.MALE;
}
}
package com.sean.factory.abst;
import com.sean.factory.Sex;
public class Woman extends Person {
public Woman(boolean isMarried) {
super(isMarried);
}
public IName getName() {
return new WomanName();
}
public IPartner getPartner() {
IPartner partner = null;
if(isMarried()) {
partner = new ManPartner();
}
return partner;
}
public Sex getSex() {
return Sex.FEMALE;
}
}
/**
*
*/
package com.sean.factory.abst;
import com.sean.factory.Names;
/**
* @author Sean_Zhang
*
*/
public class WomanName implements IName {
/* (non-Javadoc)
* @see com.sean.factory.abst.IName#getName()
*/
public String getName() {
return Names.WOMAN.getName();
}
}
/**
*
*/
package com.sean.factory.abst;
import com.sean.factory.Names;
/**
* @author Sean_Zhang
*
*/
public class ManName implements IName {
/* (non-Javadoc)
* @see com.sean.factory.abst.IName#getName()
*/
public String getName() {
return Names.MAN.getName();
}
}
/**
*
*/
package com.sean.factory.abst;
/**
* @author Sean_Zhang
*
*/
public class ManPartner implements IPartner {
/* (non-Javadoc)
* @see com.sean.factory.abst.IPartner#getPartner()
*/
public Partner getPartner() {
return Partner.HUSBAND;
}
}
/**
*
*/
package com.sean.factory.abst;
/**
* @author Sean_Zhang
*
*/
public enum Partner {
WIFE,HUSBAND;
}
/**
*
*/
package com.sean.factory.abst;
/**
* @author Sean_Zhang
*
*/
public class WomanPartner implements IPartner {
/* (non-Javadoc)
* @see com.sean.factory.abst.IPartner#getPartner()
*/
public Partner getPartner() {
return Partner.WIFE;
}
}
/**
*
*/
package com.sean.factory.abst;
/**
* @author Sean_Zhang
*
*/
public interface IPartner {
public Partner getPartner();
}
/**
*
*/
package com.sean.factory.abst;
/**
* @author Sean_Zhang
*
*/
public interface IName {
public String getName();
}
package com.sean.factory.abst;
import com.sean.factory.Sex;
public interface IPerson {
public IName getName();
public IPartner getPartner();
public boolean isMarried();
public Sex getSex();
}
JDK Examples:
- java.util.Calendar#getInstance()
- java.util.Arrays#asList()
- java.util.ResourceBundle#getBundle()
- java.sql.DriverManager#getConnection()
- java.sql.Connection#createStatement()
- java.sql.Statement#executeQuery()
- java.text.NumberFormat#getInstance()
- javax.xml.transform.TransformerFactory#newInstance()
- factory method abstract factory
- Factory(Abstract Factory)
- Abstract Factory
- abstract factory
- Abstract Factory
- Abstract Factory
- abstract factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- Abstract Factory
- abstract factory
- abstract factory
- Abstract Factory
- Abstract Factory
- 三生石的传说
- VisualSVN Server的配置和使用方法 图文
- js鼠标拖动层/层的移动和浮动效果
- 单例设计模式
- Excel中如何进行两列数据合并
- Factory(Abstract Factory)
- 查看 apk 的信息
- SQL SERVER 2005附加mdf文件时缺少日志文件的方法
- Android面试题
- 如何格式化字符串的xml?
- 两分钟解决程序员的疲劳(图)求顶起!!!
- Android面试题
- fileupload 实现文件上传
- Boost智能指针——weak_ptr