没有工厂模式

设定一个登陆系统

UserServiceImp.java

public class UserServiceImp {
public boolean login(String username, String pw) {
if(username.equals("abc")&&pw.equals("123")){
return true;
}else{
return false;
}
}
}

Test1.java

import java.util.Scanner;
public class Test1 { public static void main(String[] args) {
UserServiceImp userServe = new UserServiceImp();
Scanner scanner = new Scanner(System.in);
System.out.println("Please input username:");
String uname = scanner.nextLine();
System.out.println("Please input user password");
String pw = scanner.nextLine();
boolean rel = userServe.login(uname, pw);
System.out.println(rel==true?"Success!":"Falsed!");
}
}

但是如果UserServiceImp.java没有写好,Test1.java就不可以调用,且修改比较麻烦。

工厂模式

简单工厂模式,分离调用者和实现者:

建立一个interface: UserService.java

public interface UserService {
boolean login(String username, String password);
}

建立一个工厂: UserServiceFactory.java

public class UserServiceFactory {
public static UserService getUserService(){
return new UserServiceImp();
} }

修改Test.java中的代码:

UserService userServe = UserServiceFactory.getUserService();

这样创建userServe对象的时候,就通过UserService 接口,和UserServiceFactorygetUserService()来间接创建了。

修改被调用的类

若有UserServiceImp2.java, 则只用修改facotry中的代码即可。

即,创建UserServiceimp2.java

public class UserServiceimp2 implements UserService{

    @Override
public boolean login(String username, String password) {
if (username.equals("aaa")&&password.equals("111")) {
return true;
} else {
return false;
}
} }

修改factory代码:

return new UserServiceimp2();

即可

Java 工厂模式登陆系统实现的更多相关文章

  1. java工厂模式

    (1)概念大白话:java工厂模式就是客户端(main函数)要创建对象觉得麻烦就让另外一个叫工厂的类帮它创建,然后自己每次要创建对象就叫工厂帮它弄,举个例子,在没有工厂这个"手下" ...

  2. Java工厂模式解耦 —— 理解Spring IOC

    Java工厂模式解耦 -- 理解Spring IOC 最近看到一个很好的思想来理解Spring IOC,故记录下来. 资源获取方式 主动式:(要什么资源都自己创建) 被动式:(资源的获取不是我们创建, ...

  3. Java 工厂模式(一)— 抽象工厂(Abstract Factory)模式

    一.抽象工厂模式介绍: 1.什么是抽象工厂模式: 抽象工厂模式是所有形态的工厂模式中最为抽象和最具有一般性的一种形态,抽象工厂模式向客户端提供一个接口,使得客户端在不知道具体产品的情类型的情况下,创建 ...

  4. java 工厂模式 转载

    下面介绍三种设计模式,简单工厂模式,工厂方法模式,抽象工厂模式 思考如下场景: 有一天,林同学准备去买笔记本,他到商城发现有两款电脑他特别喜欢, 一款是 Macbook Pro, 另一款是 Surfa ...

  5. java 工厂模式 从无到有-到简单工厂模式-到工厂方法模式-抽象工厂模式

    工厂模式定义(百度百科): 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式.著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见.因为工 ...

  6. Java学习笔记——Java工厂模式之简单工厂

    package com.app; import java.util.Date; /* * 工厂模式:简单工厂.工厂方法.抽象工厂 * * */ public class Test0718_Factor ...

  7. JAVA - 工厂模式

    1. 简单工厂违背OCP(Open Close Principle)原则 , 即对增加开放,对修改关闭.如果要符合OCP原则,要针对接口编程. //简单工厂模式,违反了OCP原则 public cla ...

  8. Java 工厂模式(一)— 工厂方法(Factory Method)模式

    一.工厂方法(Factory Method)模式: 1.什么是工厂方法模式? 工厂方法模式是类的创建型模式,又叫做虚拟构造子模式或者多态工厂模式.它的意义是创建产品对象的工厂接口,将实际创建工作推迟到 ...

  9. Java 工厂模式(一)— 简单工厂模式

    一.什么是工厂模式: Java中的工厂模式主要是用来将有大量共同接口的类实例化.工厂模式可以动态的决定将哪一个类实例化,不必事先知道要实例化哪个类,将类的实例化的主动权交给工厂而不是类本身.我们常见的 ...

随机推荐

  1. VUE- Cordova打包APP

    VUE- Cordova打包APP 现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题.现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android ...

  2. 吴裕雄--天生自然C++语言学习笔记:C++ 函数

    函数是一组一起执行一个任务的语句.每个 C++ 程序都至少有一个函数,即主函数 main() ,所有简单的程序都可以定义其他额外的函数. 可以把代码划分到不同的函数中.如何划分代码到不同的函数中是由您 ...

  3. Django实现websocket

    django实现websocket大致上有两种方式,一种channels,一种是dwebsocket.channels依赖于redis,twisted等 一 dwebsocket 1 Django实现 ...

  4. centos破解压缩文件密码

    rarcrack是linux系统端的一款破解加密压缩包的工具,rarcrack使用的穷举法进行破解已经加密的rar.zip和7z压缩包,支持设置多线程,和文件类型进行破解. 1.rarcrack下载页 ...

  5. Java的优先队列PriorityQueue详解

    一.优先队列概述 优先队列PriorityQueue是Queue接口的实现,可以对其中元素进行排序, 可以放基本数据类型的包装类(如:Integer,Long等)或自定义的类 对于基本数据类型的包装器 ...

  6. 每天一点点之 taro 框架开发 - taro路由及传参

    1.路由 taro的路由是自带的,不需要我们额外配置,只需要我们在app.js下config中配置pages即可 class App extends Component { config = { pa ...

  7. jQuery实现点击div外的区域,来隐藏指定节点

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script sr ...

  8. 【Java Spring 进阶之路 】1.Spring 是什么?

  9. java内存机制 垃圾回收

    gc机制一 1.JVM的gc概述 gc即垃圾收集机制是指jvm用于释放那些不再使用的对象所占用的内存.java语言并不要求jvm有gc,也没有规定gc如何工作.不过常用的jvm都有gc,而且大多数gc ...

  10. 爱奇艺用券付费VIP电影+python爬虫程序+可视化界面+下载本地

    申明:本博客中的工具及源码仅供个人学习使用,请勿用作商业等其他任何违法用途!否则后果自负 直接步入正题吧! 工具开发环境:windows10,python3.6 工具界面设计:基于python 自带的 ...