设计模式-创建模式-1-工厂方法

  1. 创建抽象工厂
  2. 创建抽象产品
  3. 创建具体产品
  4. 创建具体工厂
  5. 客户端调用
package designpattern.create.factorymethod.pattern;

public abstract class Factory {

    public abstract Product createProduct();

    public Product getObject(){
        return createProduct();
    }
}

package designpattern.create.factorymethod.pattern;

public interface Product {
}

package designpattern.create.factorymethod.pattern;

public class ProductA implements Product{
}

package designpattern.create.factorymethod.pattern;

public class ProductAFactory extends Factory{
    @Override
    public Product createProduct() {
        return new ProductA();
    }
}

package designpattern.create.factorymethod;

import designpattern.create.factorymethod.pattern.Factory;
import designpattern.create.factorymethod.pattern.ProductAFactory;

public class Client {
    public static void main(String[] args) {
        Factory factoryA = new ProductAFactory();
        System.out.println(factoryA.getObject());
    }
}

特点:对修改关闭,每一个产品需要一个工厂。

案例:URLStreamHandlerFactory

设计原则(设计模式每篇都有)

原则解释
开闭原则对扩展开放,对修改关闭
单一职责一个类应该只有一个发生变化的原因
里氏替换任何基类可以出现的地方,子类一定可以出现
依赖倒置面向接口编程,依赖于抽象而不依赖于具体
接口隔离使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好
迪米特法则只与你的直接朋友交谈,不跟“陌生人”说话
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值