细说23+1种设计模式

1.简单工厂设计模式 2.工厂方法模式 3.抽象工厂模式 4.单例模式 5.原型模式 6.建造者模式 7.装饰模式 8.策略模式 9.观察者模式 10.享元模式 11.代理模式 12.外观模式 13.组合模式 14.桥接模式 15.适配器模式 16.解释器模式 17.中介者模式 18.职责链模式 19.迭代模式 20.模板方法模板模式 21.备忘录模式 22.状态模式 23.命令模式 24.访问者模式 我们先讲第一种 简单工厂设计模式 1. 专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类,简单工厂(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,但其不属于23种GOF设计 模 式之一,通常它根据自变量的不同返回不同的类的实例。 2.简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪一个产品类的实例。由上图可以看出,简单工厂模式有工厂、抽象产品、具体产品三个角色。 工厂角色(Factory) 是简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。可被外界直接调用来创建产品对象 抽象产品角色(Product) 是简单工厂模式所创建的所有产品对象的父类,它负责描述所有实例所共有的公共接口 具体产品角色(ConcreteProductA及ConcreteProductB) 是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例 3.例子 public class cat implements anim{ public void say(){ System.out.println("miaomiao"); } }public class dog implements anim{ public void say(){ System.out.println("wangwang"); } }//public interface anim { void say(); }public class animFactory { public static anim getAnim(String type) throws IllegalAccessException, InstantiationException { if(type.equalsIgnoreCase("cat")){ return cat.class.newInstance(); }else if(type.equalsIgnoreCase("dog")){ return dog.class.newInstance(); }else{ System.out.println("err"); return null; } // Class anim=Class.forName(type); // return (anim)anim.newInstance(); } } public class test_mian { public static void main(String [] args) throws InstantiationException, IllegalAccessException { anim cat=animFactory.getAnim("cat"); anim dog=animFactory.getAnim("dog"); cat.say(); dog.say(); } }
posted @ 2019-06-27 16:33  NorthSea丿长安づ  阅读(196)  评论(0编辑  收藏  举报