Java简单模式的简单例子
来源:互联网 发布:手机上怎么注册淘宝店 编辑:程序博客网 时间:2024/04/29 17:50
某些具有相同属性的事物,根据使用者发出指令到第三方,第三方自动帮你匹配到你需要的事物。
举个例子:
有一个工厂,里面有3条流水线,一条生产 宝马,一条生产 奔驰,一条 法拉利。这三种都属于车,当你需要一辆车时,你跟厂家说:给我
来量车。厂家就会问:你要什么车,你说:给我来辆宝马。厂家:好的,就来。
你不需要自己重新建一条流水线,只需要把具体的指令发给厂家,就能得到你需要的车。
用代码举个例子
首先,这三种都是车,有车的工行,能跑
public interface Car{
public void run();
}
有3条流水线,生产的都是车。
public class BaoMa implements Car{
public void run(){
System.out.printl("我是宝马");
}
}
public class BenChi implements Car{
public void run(){
System.out.printl("我是奔驰");
}
}
public class FaLaLi implements Car{
public void run(){
System.out.printl("我是法拉利");
}
}
最后,有个工厂,能根据你的需要生产你需要的车
public class Factory{
public Car getCar(String carName){
if("法拉利".equals(carName)){
return new FaLaLi();
}else if("宝马".equals(carName)){
return new BaoMa();
}else if("奔驰".equals(carName)){
return new BenChi();
}
}
}
public static void main(String[] args){
Factory factory = new Factory();
Car car = factory.getCar("宝马");
car.run();//我是宝马
}
最后说一说简单工厂模式的优劣
优点
工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。
缺点
由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。
当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;
这些缺点在工厂方法模式中得到了一定的克服。
使用场景
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
举个例子:
有一个工厂,里面有3条流水线,一条生产 宝马,一条生产 奔驰,一条 法拉利。这三种都属于车,当你需要一辆车时,你跟厂家说:给我
来量车。厂家就会问:你要什么车,你说:给我来辆宝马。厂家:好的,就来。
你不需要自己重新建一条流水线,只需要把具体的指令发给厂家,就能得到你需要的车。
用代码举个例子
首先,这三种都是车,有车的工行,能跑
public interface Car{
public void run();
}
有3条流水线,生产的都是车。
public class BaoMa implements Car{
public void run(){
System.out.printl("我是宝马");
}
}
public class BenChi implements Car{
public void run(){
System.out.printl("我是奔驰");
}
}
public class FaLaLi implements Car{
public void run(){
System.out.printl("我是法拉利");
}
}
最后,有个工厂,能根据你的需要生产你需要的车
public class Factory{
public Car getCar(String carName){
if("法拉利".equals(carName)){
return new FaLaLi();
}else if("宝马".equals(carName)){
return new BaoMa();
}else if("奔驰".equals(carName)){
return new BenChi();
}
}
}
public static void main(String[] args){
Factory factory = new Factory();
Car car = factory.getCar("宝马");
car.run();//我是宝马
}
最后说一说简单工厂模式的优劣
优点
工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。
缺点
由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。
当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;
这些缺点在工厂方法模式中得到了一定的克服。
使用场景
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
0 0
- Java简单模式的简单例子
- java 简单的单例模式 例子
- 简单工厂模式的java实现例子
- Java 观察者模式 简单例子
- JAVA 工厂模式简单例子
- 代理模式的简单例子
- 工厂模式的简单例子
- 原型模式的简单例子
- JAVA设计模式-观察者模式简单例子
- MVC模式-简单的java小例子
- java 工厂模式简单介绍及例子
- 例子说明java中的简单工厂模式
- Java RMI的简单例子
- Java RMI的简单例子
- Java RMI的简单例子
- 简单的 Java WebService 例子
- java 线程的简单例子
- Java-ThreadLocal的简单例子
- Maven与测试
- Rate Control and H.264
- 黑马程序员---visual studio 快捷键大全
- 最长递增子序列
- 十一周 项目4 类族的设计
- Java简单模式的简单例子
- label 中可以显示不同字体,不同颜色 的text
- Hibernate二级缓存
- 排序算法(四):快速排序
- 集合类说明及区别
- android访问webservice
- matlab中的显示精度
- Android 之ScrollView
- 黑马程序员---C语言存储期的简单比较