工厂模式的思想主要为:多个类似的子类继承同一个父类,对其父类中的变量进行操作;工厂类负责判断、控制哪个子类被执行,而工厂类调用子类完成后,返回的结果是该子类的父类,该父类中的变量已经被操作过了,访问该父类,得到我们想要的结果
例如:
public interface Fruit {
void grow();//生长
void harvest();//收获
void plant();//种植
}
public class Apple implements Fruit{
private int treeAge;
public void grow() {
System.out.println("Apple is growing");
}
public void harvest() {
System.out.println("Apple has been harvested");
}
public void plant() {
System.out.println("Apple has been planted");
}
public int getTreeAge()
{
return treeAge;
}
public void setTreeAge(int age)
{
this.treeAge=age;
}
}
public class Grape implements Fruit {
private boolean seedless;
public void grow() {
System.out.println("Apple is growing");
}
public void harvest() {
System.out.println("Apple has been harvested");
}
public void plant() {
System.out.println("Apple has been planted");
}
public boolean getSeedless()
{
return seedless;
}
public void setSeedless(boolean seed)
{
this.seedless=seed;
}
}
public class FruitGardener {
public static Fruit factory(String which) throws BadFruitException
{
if(which.equalsIgnoreCase("apple"))
{
return new Apple();
}
else if(which.equalsIgnoreCase("grape"))
{
return new Grape();
}
else
{
throw new BadFruitException("Bad Fruit request");
}
}
}
public class BadFruitException extends Exception{
public BadFruitException(String msg)
{
super(msg);
}
}
public static void main(String[] args)
{
try
{
FruitGardener.factory("apple");
FruitGardener.factory("grape");
}
catch(BadFruitException e)
{
System.out.println(e);
}
}
}
LCD的工厂模式?
工厂模式是厂家在设计电路时预留的一些功能,这些功能并不对普通用户开放的。通过特殊的方式进入,通过修改存储器数据或其他方式对显示器进行维护。
工厂模式都能做些什么?由于不同的显示器厂商对一些功能的定义也略有不同,比如一些不常用的集合失真,线性失真,会聚,色纯,加速极电压等等项目,当显示器有一些软件故障的时候,可以借助它在不维修电路的基础上来解决问题。这里所说的软件故障,指的是像亮度,色彩,色纯,会聚,集合失真,线型失真,位置尺寸等,如果用户的显示器不亮了,或者是抖动,或者是由电路元件引起的故障,那是工厂模式解决不了的。
工厂模式是指包含了一个专门用来创建其他对象的方法的类。工厂模式通常用来返回符合类似接口的不同的类。
通俗的解释就是,通过工厂类,你只有关注它的使用,不必关注它是怎样实现。
就如工厂生产的东西,你可以直接买来用,不必关注它的生产流程。。。。。