Java简单模式的简单例子

来源:互联网 发布:手机上怎么注册淘宝店 编辑:程序博客网 时间:2024/04/29 17:50
某些具有相同属性的事物,根据使用者发出指令到第三方,第三方自动帮你匹配到你需要的事物。
举个例子:
有一个工厂,里面有3条流水线,一条生产 宝马,一条生产 奔驰,一条 法拉利。这三种都属于车,当你需要一辆车时,你跟厂家说:给我
来量车。厂家就会问:你要什么车,你说:给我来辆宝马。厂家:好的,就来。
你不需要自己重新建一条流水线,只需要把具体的指令发给厂家,就能得到你需要的车。


用代码举个例子
首先,这三种都是车,有车的工行,能跑
public interface Car{
    public void run();
}


有3条流水线,生产的都是车。
public class BaoMa implements Car{
    public  void run(){
        System.out.printl("我是宝马");
    }
}


public class BenChi implements Car{
    public void run(){
        System.out.printl("我是奔驰");
    }
}


public class FaLaLi implements Car{
    public void run(){
        System.out.printl("我是法拉利");
    }
}


最后,有个工厂,能根据你的需要生产你需要的车
public class Factory{
    public Car getCar(String carName){
            if("法拉利".equals(carName)){
                return new FaLaLi();
            }else if("宝马".equals(carName)){
                return new BaoMa();
            }else if("奔驰".equals(carName)){
                return new BenChi();
            }
    }
}




public static void main(String[] args){
    Factory factory = new Factory();
    Car car =    factory.getCar("宝马");
    car.run();//我是宝马
}






最后说一说简单工厂模式的优劣
优点
工厂类是整个模式的关键.包含了必要的逻辑判断,根据外界给定的信息,决定究竟应该创建哪个具体类的对象.通过使用工厂类,外界可以从直接创建具体产品对象的尴尬局面摆脱出来,仅仅需要负责“消费”对象就可以了。而不必管这些对象究竟如何创建及如何组织的.明确了各自的职责和权利,有利于整个软件体系结构的优化。
缺点
由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。
当系统中的具体产品类不断增多时候,可能会出现要求工厂类根据不同条件创建不同实例的需求.这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利;
这些缺点在工厂方法模式中得到了一定的克服。
使用场景
工厂类负责创建的对象比较少;
客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心;
由于简单工厂很容易违反高内聚责任分配原则,因此一般只在很简单的情况下应用。
0 0