美文网首页
3月份第四次总结(工厂模式)

3月份第四次总结(工厂模式)

作者: 我只是写给自己 | 来源:发表于2019-03-19 20:15 被阅读0次

    摘抄至原文链接

    设计模式并不是某一种语言所特有的,而是一种设计理念。

    工厂模式的目标:

    根据不同的需求创建实例化对象。

    我们将通过一个特定的需求来逐渐深入的讲解工程模式的用法。

    我们需要达到的一个需求是,做一个音乐播放器,这个播放器有四个按钮,分别是上一首、下一首、播放暂停、静音。

    针对上面的需求,我们先按照最简单的工厂模式写一个方法。

    这是最简单的工厂模式

    通过给action传递不同的参数,可以获取不同的播放器状态。

    用面向对象的思维去修改上面的方法,结果为

    在上述面向对象的工厂模式中,建立一个WangyiMusicAction对象,然后扩展其prototype属性,这样每个实例都会有自己的方法

    改进工厂模式

    上面的工厂模式中,只能生成WangyiMusicAction的对象,如果我还要生成一个QQMusic和BaiduMusic,XiamiMusic,只有每个music都得写一遍方法,这是不值得推荐的。

    我们可以通过一个Factory(工厂)来动态创建各种类型的Music,首先是WangyiMusicAction。

    然后是QQMusicAction。

    最后是两种的Factory方法,并通过Factory生成一个QQMusic的实例。

    优化工厂模式

    但是在上面的工厂模式中,我们发现WangyiMusic和QQMusic的prototype属性可以封装成一个对象,用作父类继承。

    定义父类

    继承

    通过修改prototype属性实现继承。

    建立Factory工厂

    建立工厂动态生成WangyiMusic或者QQMusic,然后生成一个QQMusic实例,并调用相应的方法。

    通过上述的继承父类方案,可以优化代码结构,工厂模式也使用的更加简洁。

    相关文章

      网友评论

          本文标题:3月份第四次总结(工厂模式)

          本文链接:https://www.haomeiwen.com/subject/oyznmqtx.html