abstract void printPrice();
}
public abstract class CarbonatedDink extends Drink {
/**所有该类饮料共有的属性*/
public void commonProperty() {
System.out.println("碳酸饮料中都含有二氧化碳");
}
}
public abstract class JuiceDink extends Drink {
/**所有该类饮料共有的属性*/
public void commonProperty() {
System.out.println("果汁饮料中都含有果汁浓缩汁");
}
}
public abstract class CoolTeaDrink extends Drink {
/**所有该类饮料共有的属性*/
public void commonProperty() {
System.out.println("凉茶饮料中都含有中草药成分");
}
}
public class CocaCola extends CarbonatedDink {
@Override
void printName() {
System.out.println("可口可乐");
}
@Override
void printPrice() {
System.out.println("2.5元");
}
}
public class Sprite extends CarbonatedDink {
@Override
void printName() {
System.out.println("雪碧");
}
@Override
void printPrice() {
System.out.println("2.5元");
}
}
public class HuiYuanGuozhi extends JuiceDink {
@Override
void printName() {
System.out.println("汇源果汁");
}
@Override
void printPrice() {
System.out.println("2.0元");
}
}
public class GuoLiCheng extends JuiceDink {
@Override
void printName() {
System.out.println("果粒橙");
}
@Override
void printPrice() {
System.out.println("3.5元");
}
}
public class JiaDuoBao extends CoolTeaDrink {
@Override
void printName() {
System.out.println("加多宝凉茶");
}
@Override
void printPrice() {
System.out.println("3.5元");
}
}
public class WangLaoji extends CoolTeaDrink {
@Override
void printName() {
System.out.println("王老吉凉茶");
}
@Override
void printPrice() {
System.out.println("3.5元");
}
}
/**
* 生产饮料的抽象工厂
*/
public interface DrinkFactory {
/**创建碳酸饮料*/
CarbonatedDink createCarbonatedDink();
/**创建果汁饮料*/
JuiceDink createJuiceDink();
/**创建凉茶饮料*/
CoolTeaDrink createCoolTeaDrink();
}
public class DrinkFactory1 implements DrinkFactory {
@Override
public CarbonatedDink createCarbonatedDink() {
return new CocaCola();
}
@Override
public JuiceDink createJuiceDink() {
return new HuiYuanGuozhi();
}
@Override
public CoolTeaDrink createCoolTeaDrink() {
return new JiaDuoBao();
}
}
public class DrinkFactory2 implements DrinkFactory {
@Override
public CarbonatedDink createCarbonatedDink() {
return new Sprite();
}
@Override
public JuiceDink createJuiceDink() {
return new GuoLiCheng();
}
@Override
public CoolTeaDrink createCoolTeaDrink() {
return new WangLaoji();
}
}
public class Client {
public static void main(String[] args) {
//创建两个饮料工厂
DrinkFactory drinkFactory1 = new DrinkFactory1();
DrinkFactory drinkFactory2 = new DrinkFactory2();
System.out.println("drinkFactory1开始生产饮料>>>>>>>>>>>>");
//drinkFactory1创建一组饮料产品
CarbonatedDink cocaCola = drinkFactory1.createCarbonatedDink();
JuiceDink huiYuanGuozhi = drinkFactory1.createJuiceDink();
CoolTeaDrink jiaDuoBao = drinkFactory1.createCoolTeaDrink();
cocaCola.printName();
cocaCola.printPrice();
huiYuanGuozhi.printName();
huiYuanGuozhi.printPrice();
jiaDuoBao.printName();
jiaDuoBao.printPrice();
System.out.println("");
System.out.println("drinkFactory2开始生产饮料>>>>>>>>>>>>");
//drinkFactory2创建一组饮料产品
CarbonatedDink sprite = drinkFactory2.createCarbonatedDink();
## 学习福利
**【Android 详细知识点思维脑图(技能树)】**
> 
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,**现在高级工程师还是比较缺少的**,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
> 这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。

**[CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://ali1024.coding.net/public/P7/Android/git)**
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/162391.html