java中工厂模式和单例模式详解

如何将实例化具体类的代码从应用中抽离或者封装起来,使它们不会干扰应用的其他部分?


1:简单工厂模式:其作用是实例化对象而不需要客户了解这个对象属于那个具体的子类。

using System;
using System.Collections;

public class MyClass
{
    public static voidMain()
    {
        //通过参数来实例化子类。
        IVehicle vehicle =FactoryVehicle.CreateVehicle("car");
        vehicle.go();
        Console.ReadLine();    
    }
     
}

public class FactoryVehicle
{
    public static IVehicleCreateVehicle(string VehicleName)
    {
        switch(VehicleName.ToLower())
        {
            case"car":
            return newCar();
            case"boat":
            return newBoat();
            default:
            return newCar();
             
        }
    }

}
public interface IVehicle
{
    void go();
}
public class Car:IVehicle
{
    public void go()
    {
        Console.WriteLine("car");
    }
}
public class Boat:IVehicle
{
    public void go()
    {
        Console.WriteLine("boat");
    }
}
2:抽象工厂:即将工厂方法也抽象出来,由具体的子类来实例化工厂。产品创建部分和简单工厂模式相同。

using System;
using System.Collections;

public class MyClass
{
    public
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值