美文网首页
android:Java之策略模式

android:Java之策略模式

作者: Ray丶Cxy | 来源:发表于2017-03-23 11:16 被阅读0次

发文初衷:为什么突发奇想要对Java的设计模式做研究,首先由于本人以前对设计模式概念比较模糊,自从本人改过自新之后,决定对以前所以模棱两可的东西,都会进行一一的系统详细的学习。正巧公司最近项目当中遇到了设计模式中的策略模式,所以本人写下自己的心得的思考。

个人观点:I Think  所有的设计模式都在实际的项目开发中由大牛么,通过不断的向上抽取,最终得到一种比较好的方式来使我们的开发更加的方便。

模式的应用场景:百货商场的收银系统,由于商场都会有自己的会员制度,所以每一件商品针对不同的用户群体都会有相应的价格。本文举例的角色用户:普通用户,会员,超级会员,在针对每一个商品的计算方式都大不相同,也许有人会说,那这个还不简单,编写一个函数,通过参数传递的不同做不同的计算。你可能会这样去做,但是在实际的业务逻辑当中,也许上面的三个角色并不是你想想的只是简单的计算而已。也许会有给会员积分,也许会有将不同的用户群体以不同的方式进行存储以便以后,针对不同用户进行精准推送。当然这些问题都可以通过最基本的  i f ----else   的方式进行解决,但是想过没有如果另外一个人来对你的业务进行维护。别人可能看的都会比较头大。那么策略模式是一种很好解决i f ---else这种传统的方式。好不多说,看代码

这是定义的一个接口,里面只是一个简单的计算方法,但是在实际的业务逻辑当中会有其他的操作,具体应按照业务逻辑而定

下面分别被:普通用户、会员、超级会员继承

这样当所有的业务逻辑变的复杂的时候,我们只需要在相应的角色用户中进行相应的修改,或者添加相应的业务逻辑,那么当下一个人接收你的项目的时候,别人就能会快的熟悉你的代码逻辑以及项目逻辑。让别人快速融入到项目当中。

下面是用户调用:相关类

注:本人是从事android开发,可能有些控件问题只有相应的android coder才能看懂,暂时没有用纯java的方式,在此非常抱歉,

总结:策略模式其实就是if --else的高度抽象升级(个人理解),作为一名有理想的coder,总是会希望自己的东西能够的到别人的认可和被别人快速理解,策略模式是其中一种能够快速让人理解的模式之一。在实际的项目开发中希望大家能根据项目需求,合理的选择好的方式。不管对自己还是他人都是一个帮助和成长,有不同理解的coder希望能听到你们的留言,本人会以最快的方式和大家讨论。最后,喜欢的人,留下你们的点赞,不喜勿喷,谢谢

相关文章

  • java/android 设计模式学习笔记(17)---策略模式

    java/android 设计模式学习笔记(17)---策略模式 【备注】只用于个人收藏

  • android:Java之策略模式

    发文初衷:为什么突发奇想要对Java的设计模式做研究,首先由于本人以前对设计模式概念比较模糊,自从本人改过自新之后...

  • 策略模式

    本文参考自: 《JAVA设计模式》之策略模式(Strategy) 1. 作用 策略模式属于对象的行为模式。其用意是...

  • 策略设计模式

    [Java策略模式(Strategy模式) 之体验] public class Client { } 测试输出结果...

  • 策略模式

    参考资料:漫话:如何给女朋友解释什么是策略模式? 设计模式之策略模式(实例+Demo) Java设计模式(8)——...

  • JAVA / Android 设计模式之策略模式

    前言 策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可...

  • Java设计模式之策略模式

    Java设计模式之策略模式 简介 在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行...

  • Java设计模式——策略模式

    Java设计模式之策略模式 这期分享的模式是策略模式是程序设计中最常用的了,因为开发工作中总是会使用到策略模式。 ...

  • 学习Head First设计模式Day1

    Java设计模式之设计模式 策略模式:策略模式定义了算法簇,分别封装起来,让他们之间可以互相替换,此设计模式让算法...

  • 11.7设计模式-策略模式-详解

    设计模式-策略模式 策略模式详解 策略模式在android中的实际运用 1.策略模式详解 2.策略模式在andro...

网友评论

      本文标题:android:Java之策略模式

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