1.工厂模式:实现了创建着和调用者的分离,即创建对象的具体过程屏蔽隔离,提高程序的灵活性
核心:实例化对象,用工厂替代new操作
分类:
1.简单工厂模式:
public interface Person {
public void say();
}
public class Chinese implements Person{
public void say() {
System.out.println("I am Chinese.");
}
}
public class Japanese implements Person {
public void say() {
System.out.println("I am Japanese.");
}
}
public class PersonCreator {
public static Person createPerson(String type) {
if (type.equals("chn")) {
return new Chinese();
}
if (type.equals("jpn")) {
return new Japanese();
}
return null;
}
}
public class Test {
public static void main(String[] args) {
PersonCreator pc = new PersonCreator();
pc.createPerson("chn").say();
pc.createPerson("jpn").say();
}
}
2.工厂方法模式
interface Person{
void say();
}
class Chinse implements Person{
@Override
public void say() {
System.out.println("我是中国人");
}
}
class Japan implements Person{
@Override
public void say() {
System.out.println("我是日本鬼子");
}
}
interface Factory{
Person getPerson();
}
class ChinseFactory implements Factory{
@Override
public Person getPerson() {
return new Chinse();
}
}
class JapanFactory implements Factory{
@Override
public Person getPerson() {
return new Japan();
}
}
public class FactoryTest {
public static void main(String[] args) {
ChinseFactory c1 = new ChinseFactory();
c1.getPerson().say();
JapanFactory j1 = new JapanFactory();
j1.getPerson().say();
}
}
3.抽象工厂模式(待补充)