设计模式分类:
- 创建型模式(创建对象的): 单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
- 行为型模式(对象的功能): 适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
- 结构型模式(对象的组成): 模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。
简单工厂模式
先在我们在创建对象的时候仅仅使用的是new来进行创建的,而在以后的开发过程中,有的时候创建对象不仅仅是new出来,而是在 创建对象之前,要做很多的初始化的东西. 那么如果按照现在的方式进行初始化,那么需要在很多的地方进行修改,比较麻烦.那么为了提高代码的维护性,我们需要使用设计模式的: 简单工厂模式
- 简单工厂模式概述:又叫静态工厂方法模式,它定义一个具体的工厂类负责创建一些类的实例。
- 优点:使用静态工厂模式的优点是实现责任的分割,该模式的核心是工厂类,工厂类含有必要的选择逻辑,可以决定什么时候创建哪一个产品的实例,而客户端则免去直接创建产品的责任,而仅仅是消费产品。也就是说静态工厂模式在不改变客户端代码的情况可以动态的增加产品。明确了类的职责。
- 缺点这个静态工厂类负责所有对象的创建,如果有新的对象增加,或者某些对象的创建方式不同,就需要不断的修改工厂类,不利于后期的维护。
示例如下:
1、定义一个接口:
public abstract class Animal {
public abstract void eat() ;
}
2、创建实例类:
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼..................");
}
}
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃肉........");
}
}
3、普通方式建对象:
public class AnimalTest {
public static void main(String[] args) {
// 创建Dog 对象
Dog d1 = new Dog() ;
d1.eat() ;
Dog d2 = new Dog() ;
d2.eat() ;
}
}
4、简单工厂模式创建对象
public class AnimalFactory {
// public static Cat createCat(){
// return new Cat() ;
// }
//
// public static Dog createDog() {
// return new Dog() ;
// }
public static Animal createAnimal(String type){
if("dog".equals(type)){
return new Dog() ;
}else if("cat".equals(type)){
return new Cat() ;
}else {
return null ;
}
}
}
实现关系如下: