您的位置:首页 > 职场人生

黑马程序员——设计模式——简单工厂模式(静态工厂方法模式)

2015-04-23 19:25 393 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

较为方便的创建对象的方式

优点:较为方便的创建对象的方式,不用考虑内部实现方法

缺点:违反的高内聚的原则,如果新添加具体类,就必须修改工厂

实现方式

1.创建抽象产品角色(抽象类或接口,所有类的父类,包含公共的功能)

2.创建具体产品角色(实现类,继承抽象类)

3.创建工厂角色(通过传递参数,静态方法返回具体类的对象,由工厂传入的参数决定生成的对象)

1.抽象产品角色

//产品类
//抽象产品角色
//所有具体产品的父类定义的产品的公有方法
abstract class Animal{
abstract void eat();//公有方法
}
2.创建具体产品角色

<span style="font-size:10px;">//具体产品角色
//产品的具体实现
class Dog extends Animal{

void eat() {
System.out.println("狗吃骨头");
}
}
//具体产品角色
//产品的具体实现
class Cat extends Animal{

void eat() {
System.out.println("猫吃鱼");
}
}</span>
3.创建工厂角色(如果添加新的具体类必须修改工厂)

//工厂类
//工厂角色
//负责创建所有的对象的工厂
class SimpleFactory{
<span style="white-space:pre">	</span>//根据参数创建具体类
public static Animal createAnimal(String type){
if("dog".equals(type.toLowerCase())){
return new Dog();
}else if("cat".equals(type.toLowerCase())){
return new Cat();
}
return null;
}
}


测试类

public class Main {

public static void main(String[] args) {
Animal a = SimpleFactory.createAnimal("dog");
a.eat();
a = SimpleFactory.createAnimal("cat");
a.eat();
}

}


输出

狗吃骨头

猫吃鱼
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐