常说的设计模式是23种设计模式,分为3大类:
一、创建型模式5种:工厂方法、抽象工厂、单例、建造者、原型
二、结构型模式7种:适配器、代理、桥接、装饰者、外观、享元、组合
三、行为型模式11种:模板方法、解释器、策略、观察者、迭代器、职责链、命令、备忘录、状态、访问者、中介者。
当然有一部分模式中,还有一些小的变化,在未来的持续更新中,我们会一一列举,并以代码为主,去学习设计模式。
今天先说简单工厂模式:
简单工厂模式,不属于23种设计模式中的任何一种,但是,它是从工厂模式中简化而来的。
工厂模式中,重点需要抓住,“制造产品”这句话,就容易入门,从而进一步学习和理解。
首先,工厂要有产品,而工厂就是在创建产品,主要功能也是在创建产品,对于程序来说,是实例化对象的程序。
示例:假设“女娲造人”的神话传说中,产品是人类,分男人和女人。我们要事先准备好,人类,男人类和女人类,而这三个类将通过简单工厂方法创建出符合条件的对象。
abstract class Person{
private final String name;
private String sex;
public Person (String name){
this.name=name;
}
public String toString() {
return "我的名字是"+this.name+" i am "+sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
//男人
class Man extends Person{
{
setSex("Man");
}
public Man(String name){
super(name);
}
}
//女人
class Women extends Person{
{
setSex("Women");
}
public Women(String name){
super(name);
}
}
而简单工厂模式,就是根据对产品的选择,而生产对应商品的功能程序。
//简单工厂
class SimpleFactory{
public static Person getObject(String name,String sex) throws Exception{
if(sex.equalsIgnoreCase("man")){
return new Man(name);
}else if(sex.equalsIgnoreCase("women")){
return new Women(name);
}else{
throw new Exception("请输入正确的信息");
}
}
}
调用执行出效果的程序:
//创建一个男人叫迪卡
Person person= SimpleFactory.getObject("迪卡","man");System.out.println(person);
//创建一个女人叫萨瓦
person= SimpleFactory.getObject("萨瓦","women");System.out.println(person);