zoukankan      html  css  js  c++  java
  • 对象类《大话设计模式》部分模式总结(一):

    最近研究对象类,稍微总结一下,以后继续补充:

        

    1.简单工厂模式:

           其中主要涉及到方面内容:

          一是:代码规范。这不仅须要初学者注意,也须要那些在这方面做得不敷的老程序员加以重视。正如米老师经常说的一句话:代码是给别人看的!只有自己能看懂的代码,不是好代码。关于代码规范,提高班有专门的相干文档,是王鹏师哥和李雪茹师姐编写的,大家可以多看看。

           第二是:面向对象的编程(封装,继承和多态)。以活字印刷为例,活泼形象地说明白面向对象的四大特点:可维护,可复用,可扩展和灵活性好。对于我来说,之前接触的都是面向进程的编程,所以转变起来还是有一定难度,不过有志者事竞成,相信在不断学习的这个进程当中,我一定会充分感受并理解到面向对象编程的艺术美。

           第三点就是UML类图的四种关系:关联,继承,依附和组合。一些关系的详细应用,我们会在稍后的机房收费系统中用到,多看,多用,自然就熟习了。

           第四点就是简单工厂模式了。它主要有三个参与者:抽象角色,详细产品角色和工厂角色。可以解决如何实例化对象的问题。

        

        

    2.策略模式:

           通过做一个��收银软件为例懂得策略模式。示例详细内容营业员根据客户所购买商品的单价和数量,向客户收费。

           策略模式是一种定义一系列算法的方法,它的优点有:(1)以雷同的方式调用所有的算法,增加了各种算法类与应用算法类之间的耦合(2)它的Strategy类层次为Context定义了一系列的可供重用的算法或行为,继承有助于析掏出这些算法中的大众功能。(3)简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口单独测试。

           综上可用一句话来表示:策略模式就是用来封装算法的,换言之,策略模式封装了变更。

        

        

    3.装饰模式:

           通过小菜的不同穿着服饰为例,说明:装饰模式就是为已有功能动态地添加更多功能的一种方式。

          它的优点是:它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象。也就是把类中的装饰功能从类中搬移去除,这样可以简化原有的类。有效地把类的核心职责和装饰功能区分开了,这样可以去除相干类中重复的装饰逻辑。

        

        

    4.代理模式:

           讲了一个高中时代,为他人作嫁衣的故事,说明白代理模式。代理模式就是为其他对象供给一种代理以控制对这个对象的拜访。

        每日一道理
    试试看——不是像企鹅那样静静的站在海边,翘首企盼机会的来临,而是如苍鹰一般不停的翻飞盘旋,执著的寻求。 试试看——不是面对峰回路转、杂草丛生的前途枉自嗟叹,而是披荆斩棘,举步探索。 试试看——不是拘泥于命运的禁锢,听凭命运的摆布,而是奋力敲击其神秘的门扉,使之洞开一个新的天地。微笑着,去唱生活的歌谣。

          它的应用主要有四种:(1)远程代理,也就是为一个对在不同的地址空间供给局部代表。这样可以隐藏一个对象存在于不同地址空间的现实(2)虚拟代理,是根据须要创立开销很大的对象,通过它来存放实例化须要很长时光的真实对象。(3)安全代理,用来控制真实对象拜访时的权限。(4)智能指引,指当调用真实的对象时,代理处理另外一些事。

        

        

    5.工厂方法模式:

           通过报告一群学生代替生病的同学,匿名照顾孤寡老人的事件,展开工厂方法模式的学习。工厂方法模式:是定义一个用于创立对象的接口,让子类决定实例化哪个类。它使得一个类的实例化延迟到其子类。

           仔细的同学会发明,在工厂方法中选择判断的问题还是存在的,但是工厂方法把简单工厂的内部逻辑判断移到了客户端代码来停止,想要增长功能,本来是改工厂类的(在简单工厂中),现在只须要修改客户端便可。

        

        

    6.原型模式:

           通过小菜夸大并且大批复印的简历,引出原型模式。原型模式:也就是用原型实例指定创立对象的种类,并且通过拷贝这些原型,来创立新的对象。这其中涉及到了深复制和浅复制。

           浅复制是被复制对象的所有变量都含有与原来的对象雷同的值,而所有的对其他对象的引用仍然指向原来的对象。与之不同的深复制则是把引用对象的变量指向复制过的新对象。

        

        

    7.模板方法模式:

           通过标准化测验,讲解了这一模式。模版方法模式,定义一个操作中的算法的骨架,而将一些步调延迟到子类中。它通过把不便行为搬移到超类,去除子类中的重复代码来表现它的优势。可以说模版方法模式供给了一个很好的代码复用平台。

        

        

    8.外观模式:

           通过对比购买基金和个人炒股,来说明外观模式。外观模式:为子系统中的一组接口供给一个分歧的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易应用。

           那么,何时应用外观模式呢?(1)计划初期,有意识的分层(2)开辟阶段,增长Facade供给一个简单的接口,增加子系统由于不断的重构形成的愈来愈庞杂的情况。(3)维护一个遗留的大型系统时,为新系统开辟一个外观Facade类。

         

        未完待续,敬请期待~

         

    文章结束给大家分享下程序员的一些笑话语录: 爱情观
      爱情就是死循环,一旦执行就陷进去了。
      爱上一个人,就是内存泄露--你永远释放不了。
      真正爱上一个人的时候,那就是常量限定,永远不会改变。
      女朋友就是私有变量,只有我这个类才能调用。
      情人就是指针用的时候一定要注意,要不然就带来巨大的灾难。

  • 相关阅读:
    Java单例模式
    svn 清理失败 (clean up 失败) 的解决方法
    linux chrome 安装过程记录
    docker
    linux-cat-grep
    linux-批量结束进程
    linux-压缩与解压缩(gz,zip,tar,jar,war)
    git-服务器地址切换
    linux-tomcat连接数查询
    git-无法add文件的问题
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3089306.html
Copyright © 2011-2022 走看看