`

模式,用还是不用

阅读更多
 
    近两年模式炙手可热,加上各种框架的游行,几乎开发人员已经到了言必谈模式的地步,但是画虎不成反类犬,经常模式应用不仅没有带来很好的结构,反而使得代码难以维护。
    以前和一个同学讨论技术的时候,她说了一句今天听来特别经典的话:
    好的设计并不容易理解!
 
    的确如何,有时和其它程序员解释一些设计的时候,总是要花许多力气!比如说要构造树的时候,有人会问我为什么要用一个Node,直接一层层new下不就得了!听到这些问题,真的是哭笑不得!
 
    上次有一个朋友问我在什么环境下才应用设计模式,这种问题向来没有答案的,象《设计模式》书中就对每一个设计模式的应用环境给出了说明,另外我个人建议,没有把握用好就不要用。
    象我的习惯是核心代码是多用设计模式,因为设计核心代码的程序人员都有不少经验,使用设计模式,通过类名可以更快的了解系统,如看到ICommand,IVisitor就知道了类的功能。但是在应用层,就要好好考虑一下了!因为许多程序开发人员,特别是新毕生的学生,如果不适当的应用设计模式,反而会降低代码质量,所以在项目或者产品开发时,一定要注意如何应用模式。
分享到:
评论
9 楼 dream_flyer_2083 2006-11-28  
一百个支持啊,不要说初级程序员,有些公司的高级程序员做出来的程序号称用了n多模式和顶尖技术,结果搞的狗不像狗,猪不像猪,让人很难维护,哭笑不得啊。
8 楼 wl95421 2006-11-28  
其实这个问题
主要还是针对一些初中级的程序员(我个人也是)
因为我觉得这个时候,因为经过一两年的学习,有了开发经验
有了设计的概念,总想做一些好的设计出来,但是并不是把一堆模式放在一起就会有好的设计,所以算是给自己以及其他的朋友提个醒!
7 楼 taowen 2006-11-28  
if (hasValue) {
  useDesignPattern();
} else {
  dontUseIt();
}

What is value? How much effort will cost you to implement and maintain a design? What is the benefit of the design? Then, the diff between the two, is the value.
6 楼 kipling 2006-11-28  
我是先完成任务,有时间再考虑重用,灵活的问题,反正有重构嘛.

加一层解决设计问题,减一层解决性能问题.模式与IoC,或者AOP慢慢权衡.
5 楼 shaucle 2006-11-27  
项目变大和复杂后自然要用到模式
反过来说,较大和复杂的项目不宜交给初学者 ^_^
4 楼 giscat 2006-11-27  
个人愚见,
模式是架构,框架层的,应该尽可能少的把模式留给程序员去发挥,
否则只能说明设计做得不到位了,
3 楼 feiyang21687 2006-11-27  
如果项目比较小的时候,用模式可能会影响到性能.比如工厂模式,如果完全可以控制产生的具体类,那么工厂模式在中间加的一层中间层就显得多于了.
2 楼 wl95421 2006-11-26  
我的意思也是差不多
不要为了模式而模式
在没有把握用好一个模式的前提下
就不要用模式
1 楼 geutopia 2006-11-26  
   开发的时候,不用特意去使用模式,只要想着能解耦,好扩展就可以了,为了解决这个问题,模式自然就会用上的。

相关推荐

    Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity

    标题提到的“Android-这是个方便切换夜间模式的库利用官方夜间模式同时不用重启Activity”是一个旨在简化Android应用夜间模式切换的第三方库。这个库允许开发者在不重新启动Activity的情况下实现夜间模式的即时切换...

    CS 模式、BS 模式、CS模式+BS模式

    BS 模式的结构最大优势就是易被扩展,不用安装任何软件,且不需维护,只要一台能连接互联网的电脑就能运用,且只需一次投资。 BS 模式的应用例子有淘宝购物网站,我们不需要安装任何其他客户端软件,只需要安装一个...

    台达A2控制模式简介所謂的Pr 模式

    【台达A2控制模式简介——Pr模式】 Pr模式,全称为Procedure模式,是一种在伺服控制系统中用于规划预设行程的模式。传统伺服系统利用Pr模式进行点对点的控制,但台达A2的Pr模式则在此基础上进行了创新,使得系统...

    Java设计模式面试题汇总

    工厂方法模式:工厂方法模式将生成具体产品的任务分发给具体的产品工厂,不用通过指定类型来创建对象。 抽象工厂模式:抽象工厂模式通过在AbstractFactory中增加创建产品的接口,并在具体子工厂中实现新加产品的...

    装饰模式小猪快跑游戏模拟

    装饰模式是一种设计模式,它允许我们在不修改原有对象的基础上,通过添加新的行为或属性来扩展对象的功能。在"装饰模式小猪快跑游戏模拟"这个实例中,我们看到这种模式被巧妙地应用到了一个名为“小猪吃苹果”的游戏...

    C#23种设计模式_示例源代码及PDF

    桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关 桥梁模式 联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是 继承关系,从而使两者可以独立的...

    JAVA设计模式-设计模式公司出品

    设计模式公司出品的《JAVA设计模式》书籍,详细介绍了多种设计模式,适合不同水平的程序员学习和使用。 首先,我们来了解什么是设计模式。设计模式是软件开发过程中遇到的某一类问题的典型解决方案。它们通常被分为...

    java-设计模式-状态模式-模拟审批流程-二级审批 完整代码

    这个压缩包文件包含了一个用状态模式实现的审批流程的完整代码。 在审批流程中,通常有多个状态,比如“待提交”、“一级审批中”、“一级审批通过”、“一级审批拒绝”、“二级审批中”和“审批完成”。每个状态...

    二十三种设计模式【PDF版】

    艺术大家通常是创造出自己的套路,比如明末清初,水墨画法开始成熟,这时画树就不用勾勒这个模式了,而是一笔 下去,浓淡几个叶子,待毛笔的水墨要干枯时,画一下树干,这样,一个活生写意的树就画出来. 我上面这些描述其实...

    设计模式精心总结

    10. 中介者模式(Mediator):中介者模式用一个中介对象来封装一系列的对象交互,使得各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 11. 解释器模式(Interpreter):解释器...

    您的设计模式

    原型模式用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 21. 中介者模式(Mediator Pattern) 中介者模式定义一个中介对象来封装一系列对象之间的交互。中介者使各个对象不需要显示地相互...

    CBF4LIFE的《设计模式讲解JAVA》

    在《设计模式讲解JAVA》一书中,作者CBF4LIFE以《三国演义》中刘备娶亲的典故为背景,通过生动的故事和代码示例,深入浅出地讲解了各种设计模式的概念、应用和实现。下面将详细探讨书中的关键知识点。 首先,书中...

    SmallPDF6.6.0.1最新版离线模式使用。不用联网.exe

    SmallPDF6.6.0.1最新版离线模式使用。不用联网使用,不是你们看到的那种几百刀的会员。试试你就知道了,贼好用。

    设计模式入门指导

    - 原型模式(Prototype Pattern):用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 结构型模式涉及如何组合类和对象以获得更大的结构。例如: - 适配器模式(Adapter Pattern):允许将一个类...

    紫屏工程模式工具

    这个"紫屏工程模式工具"可能包含了进入设备的工程模式的功能,工程模式是开发者或技术人员使用的高级界面,可以访问和调整通常隐藏的设置和选项。 进入工程模式可以帮助用户执行以下操作: 1. **诊断问题**:在工程...

    策略模式 实例代码

    1. 结构清晰:策略模式将具体策略的实现细节封装在各个策略类中,使得客户端可以不用关心具体的实现,只需要知道如何选择策略即可。 2. 易于扩展:如果需要添加新的策略,只需要新增一个策略类即可,不会对原有系统...

    JAVA 24种设计模式介绍与6大设计原则.pdf

    结构型模式关注类或对象的组合,通过使用继承来组合接口或实现,例如适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式等。行为型模式关注对象间的通信,它们定义了对象间责任分配的方式,如...

    IIS的集成和经典模式

    经典模式是为了与之前的版本兼容,使用ISAPI扩展来调用ASP.NET运行库,原先运行于IIS6.0下的Web应用程序迁移到IIS7.0中只要将应用程序配置成经典模式,代码基本不用修改就可以正常运行。集成模式是一种统一的哀求...

Global site tag (gtag.js) - Google Analytics