您现在的位置是:主页 > news > wordpress更新需要连接ftp/网站seo策划方案
wordpress更新需要连接ftp/网站seo策划方案
admin2025/4/30 5:28:51【news】
简介wordpress更新需要连接ftp,网站seo策划方案,杭州91网站建设,旅游网站开发的意义是什么常见和工厂有关的设计模式 和工厂相关的设计模式主要有三种,这三种分别是:简单工厂模式,工厂方法模式,抽象工厂模式; 本文主要是对简单工厂模式进行简单的介绍以及总结; 简单工厂模式 为什么使用简单工厂…
常见和工厂有关的设计模式
和工厂相关的设计模式主要有三种,这三种分别是:简单工厂模式,工厂方法模式,抽象工厂模式;
本文主要是对简单工厂模式进行简单的介绍以及总结;
简单工厂模式
为什么使用简单工厂模式?
日常来讲我们在一个类 A 中想要使用其他类 B 的某个成员变量或者成员方法,一般是创建其他类 B 的实例(实例就是对象)
;
创建 B 的实例的方式就是使用 new 创建,显然在这个时候类 A 与 类 B 之间的耦合度是比较高的;
为了降低类 A 与类 B 之间的耦合度,可以在两个类之间,使用一个工厂,所有的类的实例由工厂进行创建,那么类 A 与 类 B 之间的耦合度将降低了,是一种好的开发方式;
当然存在着比简单工厂模式更加优秀的开发方式;
定义
定义一个工厂类,根据传递参数的不同从而返回不同的实例,被创建的对象实例之间有着共同的父类或者拥有共同实现的接口。
适用场景
1、需要创建的对象比较少
2、客户端不需要创建对象的过程
上面的使用场景这样子设定是因为,创建的对象太多,使得工厂的逻辑变得非常的复杂,这是不可取的,由于工厂类封装了对象的创建过程,所以客户端不需要关系对象是怎么创建出来的。
代码实例简单工厂模式
思考这样的场景,常见的动物都是拥有行走能力的,可以将行走的这个能力进行抽象,抽象到接口中,因为接口是比抽象类更高一级的抽象,习惯上使用接口进行抽象,并且接口是支持多继承的,在日后中也方便进行功能的增加。
对象就是类的实例,对象和实例两者是同一种东西不同的表述;
举一个实际开发当中的例子,使用简单工厂模式创建不同动物类对象:
老虎会行走,狮子会行走,大象也会行走,将这三种动物的行走能力抽象到接口中;
定义动物接口,里面定义一个公开的 run() 方法:
上述场景中的类图
public interface Animal {void run();
}
老虎实现行走功能:
public class Tiger implements Animal{@Overridepublic void run() {System.out.println("老虎在行走...");}
}
狮子实现行走功能:
public class Lion implements Animal{@Overridepublic void run() {System.out.println("狮子在行走...");}
}
大象实现行走功能:
public class Elephant implements Animal{@Overridepublic void run() {System.out.println("大象在行走...");}
}
实现创建动物的工厂类,该工厂类在传递了不同的参数之后,创建出来了不同的动物:
public class AnimalFactory {public static final String TAG = "AnimalFactory";public static Animal getAnimal(String type) {// 这里的比较避免了空指针异常以及比较字符串是忽略大小写的if ("Tiger".equalsIgnoreCase(type)) {return new Tiger();} else if ("Lion".equalsIgnoreCase(type)) {return new Lion();} else if ("Elephant".equalsIgnoreCase(type)) {return new Elephant();} else {try {System.out.println("该动物无法被该动物工厂创建出来");throw new IllegalAccessException();} catch (IllegalAccessException e) {e.printStackTrace();}}return null;}
}
在上面的 AnimalFactory 工厂类中,传入了不同的动物类型之后,就会创建出来具体的对象;
创建测试代码创建老虎:
// 老虎在行走
Animal tiger = AnimalFactory.getAnimal("Tiger");
tiger.run();
创建测试代码创建狮子:
// 狮子在行走
Animal lion = AnimalFactory.getAnimal("Lion");
lion.run();
创建测试代码创建大象:
// 大象在行走
Animal elephant = AnimalFactory.getAnimal("Elephant");
elephant.run();
整个简单工厂模式中需要的类以及接口总结
1、创建一个抽象类或者接口,这个接口抽象出来多个类的共同方法,比如上面的 Animal 接口,将动物类的行走功能抽象出来;
2、创建抽象类或者接口的多个实现类,比如上面例子中的 Tiger,Lion,Elepgant 类
3、创建对象的简单工厂类,需要什么对象,将参数传递进去,创建出来需要的对象,比如上面的 AnimalFactory 类
4、创建一个测试类,测试是不是可以使用工厂类成功的创建出来需要使用的对象
简单工厂模式的优点和缺点
优点:
将对象的创建交给了专门的工厂(工厂类)
,实现了对象的创建以及使用的分离;
缺点:
工厂类的代码是不够灵活的,因为增加了产品类的时候,工厂类的内部结构是需要修改的;
小结
本文首先介绍了与工厂相关的三种工厂模式,并且使用动物行走的例子实现了一个简单工厂模式(AnimalFactory 这个是简单工厂模式的核心)
。在日常的开发工作中,开发人员可以根据业务类型,将相关的类进一步抽象成为接口,使不同的子类实现接口,通过工厂类(AnimalFactory)
来实现不同的对象的创建;但是同时需要注意简单工厂模式的优点以及缺点;