• 简单工厂模式,策略模式


    策略模式:定义算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
    简单工厂:将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。
    简单工厂严格意义上不是一种设计模式,只能是一种良好的编程习惯。

    简单工厂模式是创建的对象,且由该对象调用其内部的指定算法,主要是针对的对象之间的行为差异,单独封装
    策略模式是针对的对象内部行为的算法,可以看作是一个集合,是允许多个策略实体进行叠加的。但工厂模式就不成。

    这是csdn一些人的看法

    首先简单工厂模式,属于创建者模式,他是讲究类的创建的,策略模式输入行为模式,是说一个事情的多种实现算法的,算法不同。

    从代码层次来看:

    简单工厂模式,是在服务端创建类对象,客户端只是提供改对象的描述或者选择,然后让服务端创建。简单工厂模式有个工厂类,负责来生成对象。

    策略模式,是在客户端创建对象,然后让服务端去调用这个对象的方法或者算法。策略模式有个上下文类(Context),他用来得到客户端传递过来的对象实例,然后去调用这个对象的方法。

    不过现在有个新的方法,就是把简单工厂模式和策略模式结合在一起。对上下文类进行改造,Context类,举办factory类的特性,他只接收客户端传递来的关于对象的描述,然后在Context创建类对象,这样就解决了客户端创建类对象的问题,然后还是在Context调用对象的实例

    简单列子

    public class Context

    {

        ClassA a =null;

        public Context(string input)

        {

               switch(input)

               {//创建类的classa的实例}

        }

        public void MethodA()

         {//调用a的方法}

    }

     //附  从代码逻辑层次讲

    简单工厂模式需要客户端认识两个类

    抽象类 和工厂类,比如这样:

    AbstractClass ac = ClassFactory.createAbstractClass("....条件");

    ac.DoMethod();

    策略模式之需要客户端认识一个类 就是上下文类,比如

    ABContext con = new AbContext("条件");

    con.DoMethod();

    本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

  • 相关阅读:
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping
    @RequestParam设置默认可以传空值
    python清空列表的方法
    Git分支管理的基本操作
    判断一个坐标点是否在不规则多边形内部的算法
    Flask 解析 Web 端 请求 数组
    SQL server 获取异常
    SQL server 大量数据导入和系统运行慢的问题
    SQL SERVER 跨服务器连接
    #pragma once
  • 原文地址:https://www.cnblogs.com/zjypp/p/2319429.html
Copyright © 2020-2023  润新知