真正的巨匠永远怀着一颗学徒的心
把毕生一分为二、前半生不犹豫、后半生不悔恨
文章继续更新,能够微信搜寻【小奇 JAVA 面试】第一工夫浏览,回复【材料】更有我为大家筹备的福利哟!回复【我的项目】有我为大家筹备的一些我的项目源码。回复【简历模板】有我为大家筹备的简历模板。
@[TOC]
前言
通过长达半年的求职生涯,你们的奇哥终于顶不住了,半年没有支出起源被迫只能先去电子厂下班过渡了,有人问我明明能够靠脸吃饭,为什么非要靠才华,我想这可能就是奇哥天生媚骨吧。
推开工厂的大门,映入眼帘的是一排排破旧的缝纫机,我跟主管说咱们不是电子厂吗,电子在哪里?主管指了指墙上的电子表,说有电子表的工厂就是电子厂(我淦)。。。。
我又关上了手机上的四七某城,看了看招聘简介的图片,齐全就是天壤之别啊,当初打工也必须得用照骗能力骗过来人吗?招聘简介图片如下(吸溜~~)
算了算了,既来之则干之,先去宿舍挑个好中央,去晚了别说床了,地铺都打不到中央。
幸好来的早,宿舍还没有人来,先霸占一个靠窗的挨着暖气的地位,挨着暖气冬天能够把洗完的袜子搭上去充当加湿器(噗。。。)
开班第一天小伙伴们都干的热气腾腾,我踩着缝纫机踏板犹如踩着风火轮般顺滑,就在我跟隔壁小美抛媚眼之际我的手机响了。
我:“喂,谁呀!”
面试官:“你好,是奇学生吗,咱们是 XXX 公司的,咱们看到了你的简历,当初不便面试吗?”
我:“不便,你面试吧!”
面试官:“好的,那你先说一说你对简略工厂模式的了解吧。”
我:“嗯。。。简略工厂啊,他这个简略工厂其实就是。。。嗯。”(这时老板听见我说简略工厂,立马走过去诡辩)
老板:“咱们可不是简略工厂啊,咱们的工厂很壮观,很简单,别听小奇给你瞎说。”
我:(我特么的。。。有你什么事)
一、面试
面试官:你能够说一下简略工厂模式的定义吗?
我:简略工厂模式就是定义一个工厂类,它能够依据参数的不同返回不同类的实例,被创立的实例通常都具备独特的父类。
面试官:你能想一个现实生活中的场景来形容一下吗?
我:假如我开了一个果园,叫“真甜呀果园”,我这个果园就能够看成一个工厂(Factory),而从我这个果园产生的水果就被称为产品(Product),假如你来我的果园买水果,你只须要把你想买的水果通知我,例如苹果,在这里苹果代表一个参数,你通知我你须要苹果,我就给你生产进去一箱苹果。你并不需要晓得苹果是怎么生产进去的,你不须要晓得咱们苹果是从树上摘的还是地里捡的,你只须要晓得一箱 50 元即可。
面试官:简略工厂模式都有哪些外围角色
我:简略工厂模式有 3 个角色。
1、Factory(工厂角色):工厂角色就是“真甜呀果园”,负责实现创立所有产品实例的外部逻辑;工厂类能够被外界间接调用,也就是用户能够间接给厂子打电话说你须要什么水果,而后咱们就给你生产,在工厂类中提供了动态的工厂办法 factoryMethod(),它返回类型为形象产品类型 Product,例如咱们这里产品类型就是箱,什么水果最高都是包装成箱(产品)。
2、Product(形象产品角色):它是工厂类创立的所有对象的父类,说白了就是水果箱,所有的水果都须要装到箱子里。
3、ConcreteProduct(具体产品角色):它是简略工厂模式的创立指标,也就是最初的水果,例如苹果,香蕉等。每一个具体的产品角色都继承了形象产品角色,也就是每一个水果都装到箱子里了。
面试官:你能给我简略写一个简略工厂模式吗
1、首先须要一个定制一批水果箱
public abstract class Product {
// 所有水果类的公共特点
public void common(){System.out.println("咱们都是水果,咱们都能榨汁");
}
// 申明形象业务办法
public abstract void methodDiff();}
2、而后须要一些实在的水果放入水果箱里
public class Apple extends Product{
@Override
public void methodDiff() {System.out.println("我是苹果,我 5 元一斤");
}
}
3、而后须要创立一个工厂来销售这些水果
public class Factory {
// 动态工厂办法
public static Product getProduct(String name){
Product product = null;
if(name.equals("苹果")){product = new Apple();
}
return product;
}
}
4、最初客户给工厂打电话,说我须要苹果
public class Client {public static void main(String[] args) {
Product product;
product = Factory.getProduct("苹果"); // 给工厂打电话要一箱苹果
product.common(); // 苹果到家了,我输入一下苹果的好坏
product.methodDiff(); // 苹果到家了,我输入一下苹果的好坏}
}
二、总结
这里的相干内容还没有整顿结束,文章前面继续更新,倡议珍藏。
文章中波及到的命令大家肯定要像我一样每个都敲几遍,只有在敲的过程中能力发现自己对命令是否真正的把握了。
如果感觉我的文章还不错的话就点个赞吧,另外能够微信搜寻【小奇 JAVA 面试】第一工夫浏览,回复【材料】更有我为大家筹备的福利哟!回复【我的项目】有我为大家筹备的一些我的项目源码。回复【简历模板】有我为大家筹备的简历模板。