设计模式(一):缘起

我发现,设计模式的思想,还是能为代码的结构带来不少便利。

因为一个系统(或者模块),包含了很多功能(功能不是独立的,总会关联),而且系统是可拓展的(可以不断升级,甚至完全改变)。

在实现整体功能的时候,需要考虑可行性,结构合理清晰,逻辑简洁。。

设计,避免很多问题。比如代码复用,功能解耦,以及用奇思妙想来达到各段代码之间的配合无间,既能实现强大的功能,代码不多结构又不复杂。

1、让功能可实现

基本功能是必须可以实现的。写一个系统,如果没有规划,直接有什么需求就写什么,这样代码会非常繁琐和混合,甚至导致最后每个功能点都要独立写一段代码。

在为了实现某些功能时候,如果发现某几个功能点之间有矛盾,或者说整个结构看起来臃肿,或者说为了实现功能要写很多代码,代码的逻辑非常复杂混乱,这时候使用一些设计的思想非常必要,如何统筹整个结构,是要给代码分层次还是怎么规划功能点,让各个模块之间的关联有序整洁,代码更少,却能实现更多的功能。

2、让代码更加简便

如果只是实现一个简单功能,怎么设计写出来的代码都差不多。但是如果是多个复杂的功能,实现的方式就有非常多种组合。最简单的就是按照功能分模块,按照需求逻辑原封不动的依次实现。但是很有可能吃力不讨好。想一下,把复用的代码块抽调出来共用很有必要,利用接口、组合、继承、封装等,或许并不需要每个功能点都全部敲一遍代码,或许能够通过分层次,通过各个模块之间的不同组合来实现各种功能,好比4个模块就能得到4+6+4+1=15种组合(其中有效组合将是一个功能点)。好的模式总是能够出乎意料,让人觉得原来这样子写两行代码全部功能就实现了。

3、让代码更加灵活可扩展

如果每个应用都是开发完后永久不变就像遥控器内置代码那样,那只需要考虑如何用最好的架构来设计这个应用就行了。但是变化可能在还没写完代码就来了!

设计最好能够适应变化。假设我们知道现在的系统将来很可能在哪些方面有扩展,首先是要能够扩展,我曾经有遇到过要为一个模块添加一个小功能,只能改变一个方法,但是这个模块的这个方法写死了,我不得不重新写n行代码作为铺垫,然后才能改这个方法(ps:或者重构原来的代码)。

如何设计才能尽可能地让各部分代码各司其职,而扩展的时候不用重写内部代码块,而是通过调用各部分代码的外部接口来实现即可。


在自己考虑如何利用模式来优化自己的代码结构的时候,首先可以借鉴JDK和一些已有的框架的模式,它们已经总结出一套如何简便代码和可行的方案,并从自己的实现中体现了,小到API的实现方式(有些API就是使用了设计模式的思想来实现的),大到各种框架的实现原理。

总的来说,无论使用什么模式,是为了代码易开发,易维护,易扩展,提高程序可读性和优化性能。

个人而言,就是为了写更精简的代码,却能做更多的事情,而且还能把事情做好,而且不仅现在好,以后更好,省心省力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值