23种经典设计模式共分为3种类型,分别是创建型、结构型和行为型:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
工厂模式
主要解决:主要解决接口选择的问题。
何时使用:我们明确地计划不同条件下创建不同实例时。
如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。
关键代码:创建过程在其子类执行。
简单工厂(又称静态工厂) Java库中的例子有DateFormat
实现简单工厂
Games.java
public abstract class Games {
/**
* 描述都有什么游戏
*/
public abstract void desc();
}
SimpleFactoryGame.java
//简单工厂类
public class SimpleFactoryGame {
public static final int TYPE_CF = 1;//cf
public static final int TYPE_LOL = 2;//lol
public static Games createGames(int type) {
switch (type) {
case TYPE_CF:
return new CfGame();
case TYPE_LOL:
return new LolGame();
}
return null;
}
//调用工厂方法
public static void main(String[] args) {
Games game = SimpleFactoryGame.createGames(SimpleFactoryGame.TYPE_LOL);
game.desc();
}
}
LolGame.java
//输出游戏LOL
public class LolGame extends Games{
@Override
public void desc() {
// TODO Auto-generated method stub
System.out.println("游戏LOL");
}
}
CfGame.java
//输出CF
public class CfGame extends Games{
@Override
public void desc() {
// TODO Auto-generated method stub
System.out.println("游戏CF");
}
}