从今天开始学习java设计模式,记下并分享自己的一些笔记。
简单工厂模式 :简单工厂模式又叫静态工厂方法模式,它定义了一个具体的工厂类负责创建一些类的实例。
工厂就是用来制作产品的地方。假设有一个工厂可以生产汽车和自行车,他们具有相同的特性行驶。
首先,我们先创建一个具有相同特性的产品抽象类Product() 它具有一个抽象方法run(),创建两个产品继承产品类
public abstract class Product { public abstract void run(); } public class Car extends Product { @Override public void run() { System.out.println("drive car"); } } public class Bicycle extends Product { @Override public void run() { System.out.println("ride on a bicycle"); } }
接着创建一个工厂用来生产产品
public class Factory { public static Product createProduct(String productName){ Product product = null; switch (productName){ case "car": product = new Car(); break; case "bicycle" : product = new Bicycle(); break; } return product; } }
当顾客想要某种商品时直接告诉工厂就可以了,而不关心工厂具体生产产品的细节
public class Customer { public static void main(String[] args) { Product car = Factory.createProduct("car"); car.run(); Product bicycle = Factory.createProduct("bicycle"); bicycle.run(); } }
优点:顾客不再过问产品生产细节,全由工厂负责,顾客直接面向工厂对象,明确了个各类的职责。
缺点:当工厂需要添加新的产品时,就需要去修改工厂类,不利于后期维护。