zoukankan      html  css  js  c++  java
  • 设计模式Abstract Factory(抽象工厂)

    Abstract Factory定义:针对应用中具体使用一系列相关的类给定一个接口,由接口负责创建。
    优点:
    1. 分离了具体的类。
    2. 使更换具体的工厂就可以实现产品的更换。
    3. 有利于产品的一致性,因为抽象工厂创建的产品都符合统一的接口。

    例如,有一个游戏,它有很多张地图,我们希望的当然是增加不同的地图时不需要改变加载地图的那部分代码,为此建一个抽象工厂:
    abstract class GameSceneFactory
        {
            
    public abstract Model CreateModel();
            
    public abstract Texture CreateTexture();
        }
    它包含2个抽象的实体,Model和Texture:
        abstract class Model
        {
            
    public abstract void FillTexture(Texture texture);
        }
        
    abstract class Texture
        {
        }
    下面是具体的地图场景,以及它们对应的具体的Model和Texture:
    Code
    然后再创建一个Game类提供对抽象工厂的访问:
    Code
    下面是使用这个抽象工厂的示例代码:
    namespace AbstractFactoryExample
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                Patrix patrix 
    = new Patrix();
                patrix.LoadScene(
    "HalfPaper");
                patrix.LoadScene(
    "Matrix");
            }
        }
    }



  • 相关阅读:
    事务之三:编程式事务、声明式事务(XML配置事务、注解实现事务)
    file的getPath getAbsolutePath和getCanonicalPath的不同
    处理 JSON null 和空数组及对象
    Eclipse快捷键大全(转载)
    Annotation之三:自定义注解示例,利用反射进行解析
    Annotation之二:@Inherited注解继承情况
    innodb事务日志详解
    事务之二:spring事务(事务管理方式,事务5隔离级别,7个事务传播行为,spring事务回滚条件)
    Java 数组的三种创建方法,数组拷贝方法
    Eclipse 远程调试
  • 原文地址:https://www.cnblogs.com/bear831204/p/1262751.html
Copyright © 2011-2022 走看看