没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
.NET工厂方法模式讲解工厂方法模式讲解
主要为大家详细介绍了ASP.NET工厂方法模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一
下
工厂方法模式介绍:工厂方法模式介绍:
工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不
再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使
得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。
工厂方法模式结构图:工厂方法模式结构图:
角色分类:角色分类:
抽象工厂角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。
具体工厂角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对
象
抽象产品角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。在上图中,这个角色是
Light。
具体产品角色:这个角色实现了抽象产品角色所定义的接口。某具体产品有专门的具体工厂创建,它们之间往往一一对应。
引入实际例子:引入实际例子:
在上一篇博文简单工厂模式中,使用简单工厂模式进行了以下实现:如果有一个住户管理系统,里面的住户类型是可变的,每
一种租户类型的租金计算公式都存在差异例如:A类型的住户租金额=天数*单价+绩效*0.005;B类型的住户租金额=月份*(每月
价格+performance*0.001)这里我们虽然实现了客户的需求,但是如果客户后期需要增加了C类型商店和D类型商店,而它们的
算法要求又不一样,这个时候我们就需要进行C,D类型商店的创建,并继承Ishop接口,实现里面的方法,同时还得继续修改
工厂类在switc中增加case进行捕捉创建相应的商店对象,一旦出现这样的情况,是不利于程序的扩展性和项目后期的维护性
的。
1.分析:商店有共同的行为特征,都要进行店铺租金计算行为,我们抽象了Ishop ,里面有待实现的计算商店租金方法行为。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FactoryEntiy
{
public interface Ishop
{
double Getrent(int days, double dayprice, double performance);
}
}
2.我们实现Isho接口里面的方法,创建A,B类型店铺。
using FactoryEntiy;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ProductEnity
{
/// <summary>
/// 继承商店接口,实现里面的行为方法,即算法
/// </summary>
public class Ashop:Ishop
{
/// <summary>
/// /// A类型商店租金额,天数*单价+绩效*0.005
/// </summary>
/// <param name="days">天数</param>
/// <param name="dayprice">每天单价</param>
/// <param name="performance">日平均绩效</param>
/// <returns></returns>
public double Getrent(int days, double dayprice, double performance)
{
Console.WriteLine("A商店的租金算法");
return days * dayprice + performance * 0.01;
}
资源评论
weixin_38685455
- 粉丝: 5
- 资源: 923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于yolov8的人体动作识别检测项目源码.zip
- 自然语言处理大作业-python的汉语词义自动消歧系统源码+报告.zip
- MT管理器_2.15.3-会员功能解锁.apk
- 基于机器学习的共享单车使用量分析与预测
- 基于Python开发的汉语词义自动消歧系统源码+超详细注释+实验报告(95分以上).zip
- 51单片机汇编语言音乐盒+电子琴,proteus仿真运行正常,开发板实物运行正常 代码都带有注释,方便理解和学习
- Python项目之django疫情数据可视化分析系统(源码 + 说明文档)
- Python项目之django-新生入学管理系统(源码 + 说明文档)
- Flutter积分或金币领取动画
- Python项目之django新生报到服务管理系统(源码 + 说明文档)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功