什么是建造者模式?
不是简单的通过new创建实例,而是在创建对象的同时,隐藏创建逻辑方式
每一类事物都有相同的属性,所以我们才把他们通称为一个名字。
动物也是一个抽象名词,他代表的是一类有相同属性的事物。
工厂模式
接口做为规范,子类去实现,工厂贩卖子类。
- 创建动物的规范接口
/**
* Created by malei on 2016/12/5.
* 动物的抽象规范
*/
public interface Animal {
void say();
}
- 开始根据接口规范创造动物
/**
* Created by malei on 2016/12/5.
* 实现规范的动物
*/
public class Cat implements Animal {
@Override
public void say() {
Log.show("我是一只猫");
}
}
/**
* Created by malei on 2016/12/5.
* 实现规范的动物
*/
public class Dog implements Animal {
@Override
public void say() {
Log.show("我是小狗");
}
}
- 贩卖动物的工厂开门了,人类可以买动物了(实例)
/**
* Created by malei on 2016/12/5.
* 贩卖实现规范的动物的工厂
*/
public class AnimalFactory {
public Animal buyAnimal(String name){
if(name == null){
return null;
}
if(name.equals("猫")){
return new Cat();
}else if(name.equals("狗")){
return new Dog();
}
return null;
}
public static void main(String[] args){
AnimalFactory factory = new AnimalFactory();
Animal dog = factory.buyAnimal("狗");
dog.say();
}
}
网友评论