面向对象,设计模式进一步理解

原创 2018年04月16日 15:15:07

设计模式,是前人总结的经验,在不同的场景里解决不同的问题,所以不应该“简单”的复制,不应该为了模式而模式,应该是灵活应用的。

看了网上很多讲设计模式的,还有不少书籍也有,开始看的时候看不懂,再学了面向对象之后,发现那些例子(猫啊狗啊)什么的都可以看懂,但是,在具体的项目里面并不知道怎么去使用。

所有的代码因项目而异,设计模式的那些套路,不一定适合你。之所以看不懂,是因为记那些概念太多了,还有就是代码量不够,我们常讲的“量变”->“质变”,没有一定的代码量,是理解不了那些设计模式的。

跳出概念的限制

我们来看一段代码:


TEntity类中,没有CreationTime这个字段,但是他的父类IHasCreationTime中有,当时不理解的是,为什么转换成了父类,改变了属性CreationTime的值,model实例的值也就改变了呢?

设计模式讲“里氏替换原则”,讲了一大堆企鹅、鸟的一些概念,并没有讲到本质上,你发现你知道了书上讲的企鹅和鸟的关系,结果到代码理解还是比较模糊。

这里是应用了多态,传统的23中设计模式中,大部分都是以面向对象“多态”的特征来实现的,如果不懂多态,就不要学设计模式,体会不到好处。

上面代码中,为什么子类转换到父类,改变了“父类”的值,子类也改变了?

原因:子类到父类的转换,子类不管怎么转,他的实例不变,转到父类只是决定用什么(父类的)形式去访问罢了。而他实际的内存存储地址是不变的。 

多态:父类可以指向子类,父类可以接受子类,就这么简单。

面向对象三大特性:封装、继承、多态。

面向对象五大原则:单一职责、开闭原则、依赖倒置原则、里氏替换原则、接口隔离原则。

使用原则:优先使用组合,少用继承(孩子太多会坑爹)。

使用设计模式达到最好的效果就是:高内聚(模块内)、低耦合(模块间)

最好的设计模式,就是忘了设计模式,不要被条条框框概念限制,随手写得好代码,前提是学好内功心法,打好基础,多写多练,积累代码,量变到质变。



版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q646926099/article/details/79960687

面向对象的23种设计模式

首先呢,设计模式是针对面向对象来的。再说设计模式之前我们先来说一下六大设计原则。 首先最基础的开闭原则:对扩展开放,对修改关闭。 为啥这是最基础的,因为我们都知道软件是要改的。对扩展开放保证了可以增...
  • wanyouzhi
  • wanyouzhi
  • 2017-08-16 15:42:34
  • 2955

面向对象之设计模式

面向对象之设计模式前言 要想推开架构师的那扇大门,就离不开设计模式这把钥匙。对设计模式的理解与精通,是通往架构师之路的第一步 在任何面向对象语言的开发过程以及个人职业技能成长的道路中,新手与新手或者新...
  • u013263917
  • u013263917
  • 2016-11-22 23:15:32
  • 1123

面向对象设计思想与常见设计模式小结

面向对象思想设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 设计模式的分类 简单工厂模式 简单工厂模式概述 工厂方法模式 工厂方法模式概述 单例设计模式 单例设...
  • lutianfeiml
  • lutianfeiml
  • 2016-09-05 16:55:37
  • 1747

面向对象思想设计原则及常见设计模式

面向对象思想设计原则 •在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 •单一职责原则 •开闭原则 •里氏替换原则 •依赖注入原则 •接口...
  • modelsetget
  • modelsetget
  • 2016-11-09 22:58:21
  • 488

面向对象开发与面向对象设计模式的几个核心的思想和概念 -java

>>>> 面向对象开发的几个核心思想 1、问题领域、对象、属性、状态、行为、方法、实现 问题领域:   指软件系统所模拟的真实世界中的系统,在现实生活中,比较常见的比如,税收、社保、银行、商...
  • ShareUs
  • ShareUs
  • 2016-03-21 17:10:54
  • 3043

设计模式之面向对象七大基本原则

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!概述在运用面向对象的思想进行软件设计时,需要遵循的原则一共有7个,他...
  • yanbober
  • yanbober
  • 2015-04-27 16:25:48
  • 7257

设计模式:可复用面向对象软件的基础(超清晰中文PDF格式,9.4M)

  • 2008年10月20日 14:26
  • 9.39MB
  • 下载

设计模式:可复用面向对象软件的基础 中文高清PDF版

  • 2010年10月06日 20:27
  • 22.49MB
  • 下载

《设计模式:可复用面向对象软件的基础》中英文双语版

  • 2012年07月16日 11:31
  • 12.11MB
  • 下载
收藏助手
不良信息举报
您举报文章:面向对象,设计模式进一步理解
举报原因:
原因补充:

(最多只允许输入30个字)