工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。
变量不可以持有具体类的引用。如果使用new,就会持有具体类的引用,可以改用工厂来避开这样的做法。
不要让类派生自具体类,如果派生自具体类,就会依赖具体类,请派生自一个抽象(接口或抽象类)
不要覆盖基类中已实现的方法。如果覆盖基类已实现的方法,那么基类就不是一个真正适合被继承的抽象。基类中已实现的方法,应该由所有子类共享。
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。
变量不可以持有具体类的引用。如果使用new,就会持有具体类的引用,可以改用工厂来避开这样的做法。
不要让类派生自具体类,如果派生自具体类,就会依赖具体类,请派生自一个抽象(接口或抽象类)
不要覆盖基类中已实现的方法。如果覆盖基类已实现的方法,那么基类就不是一个真正适合被继承的抽象。基类中已实现的方法,应该由所有子类共享。