FactoryMethodPattern(工厂方法模式)-----Java/.Net
1.介绍
工厂方法模式是一种常用的类创建型设计模式,此模式的核心精神是封装类中变化的部分,
提取其中个性化善变的部分为独立类,通过依赖注入以达到解耦、复用和方便后期维护拓展的目的。
它的核心结构有四个角色,分别是抽象工厂;具体工厂;抽象产品;具体产品
2.示例
public class Human : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Human is Sky");
}
}
public class NE : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of NE is Moon");
}
}
public class Orc : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Orc is Grubby");
}
}
public class Undead : IRace
{
public void ShowKing()
{
Console.WriteLine("The king of Undead is Gostop");
}
}
3.工厂方法接口
public interface IFactoryMethod
{
IRace CreateInstance();
}
public class HumanFactory : IFactoryMethod
{
public IRace CreateInstance()
{
return new Human();
}
}
public class NEFactory : IFactoryMethod
{
public IRace CreateInstance()
{
return new NE();
}
}
public class OrcFactory : IFactoryMethod
{
public IRace CreateInstance()
{
return new Orc();
}
}
public class UndeadFactory : IFactoryMethod
{
public IRace CreateInstance()
{
return new Undead();
}
}
class Program
{
static void Main(string[] args)
{ Human human2 = new Human();
human2.ShowKing();
//IRace human1 = new Human(); IFactoryMethod humanFactory = new HumanFactory();
IRace human = humanFactory.CreateInstance();
human.ShowKing();
Console.Read();
}
}
FactoryMethodPattern(工厂方法模式)-----Java/.Net的更多相关文章
- 设计模式之第1章-工厂方法模式(Java实现)
设计模式之第1章-工厂方法模式(Java实现) “我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~ ...
- 工厂方法模式--java代码实现
工厂方法模式 工厂方法模式,对简单工厂模式进行了升级.我们将水果园比作一个工厂,在简单工厂模式下,水果园是一个具体的工厂,直接用来生产各种各样的水果.那么在工厂方法模式下,水果园是一个抽象工厂,那么苹 ...
- 工厂方法模式(JAVA反射)
简单工厂模式的不足 在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类.简单工厂模式最大的缺点是当有新 ...
- 设计模式之工厂方法模式(Java实现)
“我先来”,“不,老公,我先!”.远远的就听到几个人,哦不,是工厂方法模式和抽象工厂模式俩小夫妻在争吵,尼妹,又不是吃东西,谁先来不都一样(吃货的世界~).“抽象工厂模式,赶紧的自我介绍,工厂方法模式 ...
- Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
- 工厂方法模式(Java与Kotlin版)
前文推送 设计模式 简单工厂模式(Java与Kotlin版) Kotlin基础知识 Kotlin入门第一课:从对比Java开始 Kotlin入门第二课:集合操作 Kotlin入门第三课:数据类型 初次 ...
- JAVA设计模式--工厂方法模式
工厂方法设计模式 抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关.是具体工厂角色必须实现的接口或者必须继承的父类.在java中它由抽象类或者接口来实现.具体工厂角色:它含有和具体业务逻辑有关 ...
- Java设计模式3:工厂方法模式
工厂方法模式 工厂方法模式是类的创建模式.工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工厂推迟到子类中. 工厂方法模式 工厂方法模式是对简单工厂模式进一步抽象的结果. 假如是不使用反 ...
- java设计模式(二)---工厂方法模式
2普通工厂方法模式 就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建. 2.1创建接口 /** * 发送接口 * Created by mrf on 2016/2/25. */ public ...
随机推荐
- mysql数据库之工作流程
MySQL架构总共四层,在上图中以虚线作为划分. 首先,最上层的服务并不是MySQL独有的,大多数给予网络的客户端/服务器的工具或者服务都有类似的架构.比如:连接处理.授权认证.安全等. 第二层的架构 ...
- Hadoop及HIVE学习宝典收集
Hive经常使用命令https://cwiki.apache.org/confluence/display/Hive/GettingStartedhttp://richardxu.com/hiveql ...
- php解压缩
1.zip文件 2.rar文件 3.php调用linux指令进行解压缩 解压7z文件: 注:Windows下的文件编码和LINUX不一样,中文系统为GB,LINUX为UTF-8编码,这种情况下,中文名 ...
- 【DCN】Wireless Intranet Captive Portal
Wireless Intranet Captive Portal 配置AAA服务Radius认证 radius-server key 0 radius radius-server authentica ...
- 原生js设置audio在谷歌浏览器自动播放
https://www.cnblogs.com/sandraryan/ 谷歌浏览器更新后禁止了autoplay功能,但是有时候可能会需要自动播放. 研究了一段代码. <!DOCTYPE html ...
- mac 安装 adb
安装命令 brew cask install android-platform-tools 测试安装情况 adb devices 设备打开开发者模式 略 查看log并过滤出设备id adb logca ...
- H3C 基于ACL的包过滤技术
- python编程设计模式之接口类和抽象类
接口类 """ 接口类 是一种编程设计模式,在python原本没有接口类 借用Java思想创建的一种规范设计模式 支持多继承,进行多方面规范 ""&q ...
- Common Logging包装设计
类设计 LogFactory根据当前环境加载具体的Log实现: 1.从缓存中加载LogFactory 2.从系统属性org.apache.commons.logging.LogFactory 中加载L ...
- Linux 内核释放函数和 kobject 类型
讨论中仍然缺失的一个重要事情是当一个 kobject 的引用计数到 0 时会发生什么. 创建 kobject 的代码通常不知道什么时候要发生这个情况; 如果它知道, 在第一位使用一个引 用计数就没有意 ...