让你彻底改变自己的思维方式 行为习惯容易吗

您还可以使用以下方式登录
当前位置:&>&&>& > 如何改变自己的思维?
改变思维 如何改变自己的思维?
相关解答一:如何改变自己得思维? 5分就像传销组织一样,给自己灌鸡汤⊙▽⊙这真的有用,要不然为什么中国有那么多人走上传销呢?相关解答二:改变自己,首先要改变自己的思维,如何改变自己的思维呢? 当你认定自己能改变的时候,自己在开始思维了!但是回过头来想想,你改变自己的思维,这个思维指的什么呢?情商,能够处理好人际关系,智商,提高自己的理解能力!改变自己的思维,首先要认识自己,是如何思维一件事!或我们思维的是些什么事情呢!我们思维的事情离不开我们的见闻觉知!眼耳鼻舌身意识!心经说,色不异空,空不异色,色即是空,空即是色,受想行识亦复如是!改变自己的思维,要离开,断灭见,常见!色空,不一不异!相关解答三:如何改变自己的负性自动思维? 自动思维(automatic thoughts),亦称为自动化思维,是指大脑中自动产生的思维、观念和想法。它们是自然而然自动出现的,无须努力就会产生。例如,一个怕狗的人,只要他一看到狗,便自动地产生了这样的想法:这狗会咬我。我们每个人的头脑中,都涌动着大量的自动思维:当你走到街上看到来往的车流时,头脑中会产生自动思维;当你同爱人相见时,头脑中会产生自动思维;当你进入餐馆地,头脑中会产生自动思维……这些思维在很大程度上影响着我们的生活,影响着我们能否生活得幸福。 自动思维的出现往往是无意识的,迅速的,我们在大部分时间都意识不到它的存在。心理学把人的心理分为“觉知区域”和“无觉知区域”两大部分,前者即意识,后者即无意识。意识是意识概念则是指人们对外界和自身的觉察与关注,而没有进入层面的内容都可以归入无意识的范畴。著名心理学家弗落伊德提出了“冰山理论”:即人的意识组成就像一座冰山,露出水面的只是一小部分意识(仅占1/7),但隐藏在水下的绝大部分(6/7)却对其余部分产生影响(无意识)。毫无疑问,自动思维属于无意识的范畴,但通过一定的方法,我们也能够认识到自己的自动思维。很多悲观的人都希望自己变得乐观,但找不到方法,因为本来就没有能够让悲观者直接变成乐观者的方法。不过我们可以一点点地改变我们的自动思维,以让我们慢慢地幸福起来。相关解答四:怎么改变思维模式 首先你要明白你需要哪种思维模式,比如创新思维,效用思维等,然后对你需要的进行有意识的培养,渐渐的你就会养成这样的思维习惯,也就是你的思维模式改变了!心理学上思维概念和特点是:(我认为有必要了解下,呵呵)思维是借助语言、表象或动作实现的、对客观事物的概括和间接的认识,是认识的高级形式。它能揭示事物的本质特征和内部联系,并主要表现在概念形成和问题解决的活动中。思维有以下一些特征: (1)概括性。思维的概括性是指在大量感性材料的基础上,把一类事物共同的特征和规律抽取出加以概括。概括水平在一定程度上表现了思维的水平。另外,概括是人们形成概念的前提,也是思维活动能迅速进行迁移的基础。概括是随人们认识水平的深入而不断发展的。人们的认识水平越高,对事物的概括水平也就越高。 (2)间接性。思维的间接性是指人们借助于一定的媒介和知识经验对客观事物进行间接的认识。由于思维的间接性,人们才可能超越感知觉提供的信息,认识那些没有直接作用于人的感官的事物和属性,从而揭示事物的本质和规律。从这个意义上讲,思维认识的领域要比感知觉认识的领域更广阔、更深刻。 (3)思维是对经验的改组。思维是一种探索和发现新事物的心理过程。它常常指向事物的新特征和新关系,这就需要人们对头脑中已有的知识经验不断进行更新和改组。思维活动常常是由一定的问题情景引起的,并试图解决这些问题。所以思维不是简单地再现经验,而是对已有的知识经验进行改组、建构的过程。 现在出名点的思维模式:(你可以借鉴下)1.4m1hwhat when where how why 遇到一件事先从这几个基本要点分析!2.PDCA循环plan计划目标do执行check检查、总结action行动 3.我认为任何一件事都有两面,有它的利就有他的弊,利就是利用,弊就是制约(有我们老师的观点),当你看一件事时的,要看两面,看到利用和制约,比如,你要得到个好成绩(利用)你就必须付出努力(制约),考虑各种环境的原因,在生活中善于观察,融会贯通,培养自己的迁移能力,观察能力,这不是一朝一夕就能改变的,但是只要你用心去改变,我相信你一定会成功的,预祝你早日成功!相关解答五:怎样改变自己的思维方式 这太容易了,安东尼罗宾在《自我完型三十天》里提出神经联想理顶,正好可以改变你的情况。首先要明确一个概念,人的思维的形成的是由习惯性的许多联想组成的。就是说你想到一件事,以及产生的感觉,是由你在第一时间联想到的事物来决定的,比如你说你写字的时候,产生自己写不好的感觉,那是因为你在写字的时候习惯性的想起了自己以前的失败经历,从而带给你挫败的感觉,沮丧的情绪。那么我们既然认识到这一点,那就从这里下手,写字的时候改变你对以前失败经验的联想,转而变成对成功经验的联想,那就可以克服这样的情况了。这个方法我屡试不爽,建议你也可以尝试一下,最好是学习《自我完型三十天》的课程里的方法,里面有最详细的介绍。这套课程,现在好像各个购物网站都有电子版的出售。具体的我也说不清,你自己搜索吧相关解答六:怎样改变自己的思维方式呢 由于种种主、客观的原因和们我观察事物的局限性和分析事物的片面性,在我们的头脑中往往形成许多片面的甚至荒谬的概念和意识。当然我们不能简单地抱怨自己的肤浅,因为客观事物往往被围上彩色的光带。而有些光环给人以虚像,甚至是奇妙而又合理的虚像。同时由于人们的经历、 学识与所处的社会环境的不同,对同一事物也会得出不同的罚论。就是同一个人对同一事物往往看法也有不同。作为从历史文化的实践发展中走出来的人,在观察世界、观察社会、观察现实的时候,总要受到习惯思维的和情感的影响,就不能不影响观察与判断的准确性。而且,我们有限的思想认识和眼光视角,都处在程度不同的近视之中,造成程度不同的误差和折射。这也是很难避免的。不过,人们对客观事物的看法不成熟或总在不断修正。由于人的大脑处于无休止的运动状态,我们要不断寻找问题答案,分析总结。这样,就需要一种比较稳定的观察分析事物的看法,即所谓的观念,以作为行动的指导,以及看待问题的参照系。有了观念,无论其看待问题的视野是宽是窄,固定或不很固定,形成可以理解的思维模式,因而就可以指导分析问题,决定行为方式。正如美国著名的认知心理治疗创始人都可隆·贝克教所言,人们在社会现实生活中都以自己独特的方式感受、理解、评价、预测周围事物,并以较为固定的情绪方式和行为方式作出相应反应 。一个人如想有一个充实的人生,就必须善于祛除和减少错觉,改变错误的意见。其中关键的一点,就是自觉接受社会或别人的新的影响和新的信息。根据周围出现的新变化,检查自己观念中僵化、保守的部分。能做到这一点是非常不简单的。因为我们往往被自我防御机制所欺骗,而满足于虚幻的自我,希望别人接受自己,赞同自己。久而久之,一种无形的幻觉就会包围、控制自己的思维,形成一种思维惯性或定势,影响了自己的思维能力。冲破旧的思维模式的束缚,美国学者约翰·鲍威尔提出三点:第一,再三修正自己对人生的解释;第二:勇于接受生活的提问;第三:努力寻找宁静与独处的时刻。苏格拉底说过:“没有反省的人生是无意义的人生”。我们必须在理智指导下转变各种不合时宜的观念。但旧有的错觉和情绪不会轻易消失,有时消失了还会卷土重来。所以,一个新观念的确立,也要有一个相对艰难的过程。有位著名的心理医生指出,所有恢复自我使人生谐调和欢乐的希望在于改变僵化的公式,纠正错误的观念或谬论。健康与生气始于大脑,始于健康的思想和生机勃勃的人生态度。参考资料:/...1.html相关解答七:如何改变惯性思维? 习惯性思维要改选是需要一个过程的。不能说一蹴而就。我觉得改变惯性思维可以这么做:1把自己每次想的方案记录下来,2、在醒目的地方提醒自己要逆向思考。3、吧自己上一次的方案、想法在看一次,用逆向思维在去坐一个新的方案,4、结合新旧2个方案,整合成优势方案。说改变容易,最重要的是做。相关解答八:如何改变一个人的思维观念 思维方式是人们大脑活动的内在程式,它对人们的言行(及至影响外部世界)起决定性作用。思维方式表面上具非物质性,象人的思想一样,无色无形,不可捕摸,它主要由后天环境(文化及教育的)影响所致;思维方式其实又具物质性,大脑皮层对相同事物的反映,会引起皮层“突触”产生某种化学反应和物理(生物电)脉冲,并按“既定路径”来变化传递,在大脑中形成一定的观念(思想)。这种非物质性和物质性的交相影响,“无生有,有生无”,就能够构成思维方式演进发展的矛盾运动。世界上所以的东西都是有两面性,没有绝对的真,更没有绝对的纯,我想你总是会想到不好的东西,也许是因为你过的并不是很快乐,和你生长的环境也不是很乐观,或许也是你对这个社会成见也太深了,一切都看开点,不要去想的太多,努力去追求自己所追求的,不要去管世间的太多是是非非,就象天气一样,我们无法去埋怨阴天,也不可能去永远拥有晴天,如何改变自己的思维。这就要自己要有一个好的心态。不好的事情,你去想想它好的一面,好的事情,你也去想象它不好的一面,比如,我举一个例子,当某一天,你一个最好的朋友欺骗了你,你非常的生气,你想从此与他绝交,这时候,你反过来想,也许你的朋友也是有苦衷的呢,也是那是他对你善意的谎言呢,我想只要我们拥有一个宽容善良和谐的心态去看待每一件事情,也许你会觉的不好的事情也许就是一件好的事情,大多数取决于自己的心情,当心情好的时候什么都顺,心情不好的事情,看不惯的事情,也要学会怎样去安慰自己,相关解答九:如何改变思维定势 培养逆向思维,又称唱反调,指的是突破原有的常人的思维定势,从相反的方向去思考问题的思维。上个世纪美国宇航局曾悬赏10万美金向全世界征集设计一种既能朝上写,也能朝下写,不用吸水,不受地球引力限制,可以供宇航员在太空使用的笔的方案。许多人认为这种笔要求那么多一定很先进,科技含量一定很高,于是全世界许多人设计了许多科技含量很高的笔,但通过使用都不符合要求。一个德国科学家突破了常人认为“需高科技”的思维定势,给美国宇航局写了一封信,信中写到:用铅笔。仅仅三个字,既赢得了10万美金,又解决了宇航员太空中书写难题。可见,逆向思维会取得意想不到的效果。作为一个人要有所发明创造,要有重大的发现,就要学会唱反调,不迷信权威,突破常理的思维定势,不按常规出牌,学会应用逆向思维。相关解答十:急!怎么改变强迫思维? 您现在就可以学习到最先进的治疗模式。过去二十年当中,行为治疗对于强迫症有极大的功效。在这手册当中,教导您成为自己的行为治疗师。学习某些基本的强迫症知识,了解强迫症是源自于身体因素,并且是可以治疗的。您可以克制强迫动作的冲动,与控制恼人的强迫思考。研究显示“暴露与不反应”是治疗强迫症的有效方法。除此之外,强迫症病人在专业的指导之下,学到如何在强迫想法的刺激之下暴露自己。且学习如何对抗强迫想法、冲动。例如:指导一位过份怕脏的病人,去摸脏东西而禁止洗手,这个技巧就叫做“暴露、不反应法”。您将学到避免习惯性的强迫行为,而以新的、健康的行为取代。本手册基本上是让您了解强迫性想法与行为是如何来的,您可以学习如何处置强迫症所导致的焦虑与害怕。适当处理您的害怕可以让行为治疗更有效。这里要强调的四个步骤如下:步骤一、再确认第一步最重要的就是学习“认清”强迫症的想法与行动。可能您一点都不想去做这个步骤,但是您必须努力的,全心的觉察,以便了解此刻的困扰是来自强迫性想法或行为。每天的觉察几乎是自动化的、肤浅的。“全心的觉察”是更深刻的、更仔细的,且要经由专注努力才能达成。记住想改变脑部的生化变化,来减少强迫性冲动可能要花上几周或几个月。若想在几分钟或几秒钟内赶走这些强迫症状,是会让您失望的!事实上反而会让强迫症状更严重!在行为治疗当中要学习控制自己不对强迫性想法作反应,不管他们有多干扰。目标是控制你对强迫症状的反应,而不是去控制强迫思考或冲动。下两个步骤是帮助你学习新的方式来控制你对强迫症状的行为反应。步骤二、再归因自己对自己说:“这不是我,这是强迫症在作祟!”强迫性想法是无意义的,那是脑部错误的讯息。你要深切的去了解,为何急着检查或“为何我的手会脏”这么有力量,以致让人无法承受。假如你知道这些想法是没有道理的,那么为何你对它要反应呢?了解为何强迫思考是如此的强烈,与为何无法摆脱它,是增强你的意志力和强化你去抵抗强迫行为的重要关键。这个阶段的目标是学习“再归因”:强迫想法的源头是来自脑部生化的不平衡。在脑部有个地方叫做“头状核”,就是这个地方生病了所以得强迫症。头状核是个过滤讯息的场所,就像汽车的变速器般,它接收前脑的讯息,而前脑是计划、思考与了解的地方。头状核有障碍则会有强迫症状出现,所以思考动作都会不顺。前脑变得太活跃,用太多能量,就像车子陷入泥淖中,不断地转动轮胎,但是却越陷越深。前脑的部分称之眼额叶皮质,因为发生错误的侦测回流以致陷入泥淖中。这可能是强迫症使得人们有“事情有些怪怪的感觉,挥之不去”的原因,你必须做到让这辆车离开泥淖。用手排档代替自排档,来修理这个故障的变速器。我们现在知道可以改变脑部的生化平衡,这需要花数周、数个月的时间。此时了解脑部扮演导致强迫症的角色,有助于免除最令人挫折的“想要完全除掉强迫症状”的不正确想法。虽然无法马上有大的改变,但是记住:“你可以不必马上对强迫症状做反应!”最有效的方式就是学习将强迫想法、感觉摆一边,然后做其它的事,如此可以帮助自己,改变脑部的生化反应。这就是我们所谓的“换档”:做其它的行为!若尝试赶走强迫思考,只是徒增压力烦恼罢了,而压力会让强迫症更严重。用“再归因”可以帮助您避免用仪式行为来让自己好过一些,例如整个完成的感觉。若知道这些强迫思考是来自脑部生化的不平衡,你就可以学着忽略这些冲动,继续做该做的事情。记住:“那不是我,那是强迫症在作怪!”若抗拒听从冲动或抗拒反应,你将改变脑部,且让强迫症的感觉减少。若你对冲动反应,你可能暂时舒缓一些......余下全文>>百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网,您的在线图书馆
欢迎转载:
推荐:    八个彻底改变思维方式的小故事
我的图书馆
八个彻底改变思维方式的小故事
故事一爹对儿子说,我想给你找个媳妇。儿子说,可我愿意自己找!爹说,但这个女孩子是比尔盖茨的女儿!儿子说,要是这样,可以。然后他爹找到比尔盖茨,说,我给你女儿找了一个老公。比尔盖茨说,不行,我女儿还小!爹说,可是这个小伙子是世界银行的副总裁!比尔盖茨说,啊,这样,行!最后,爹找到了世界银行的总裁,说,我给你推荐一个副总裁!总裁说,可是我有太多副总裁了,多余了!爹说,可是这个小伙子是比尔盖茨的女婿!总裁说,这样,行!——生意就是这样做成的。故事二一个销售员、一个办事员和他们的经理步行去午餐时发现了一盏古代油灯。他们摩擦油灯,一个精灵跳了出来。精灵说:“我能满足你们每人一个愿望。”“我先!我先!”办事员说,“我想去巴哈马群岛,开着快艇,与世隔绝。”倏!她飞走了。“该我了!该我!”销售员说,“我想去夏威夷,躺在沙滩上,有私人女按摩师,免费续杯的冰镇果汁朗姆酒,还有一生中的最爱。”倏!他飞走了。“OK,该你了。”精灵对经理说。经理回答:“我要那两个蠢货午饭后马上回来工作!”——永远让你的老板先开口故事三一只鹰坐在高高的树上休息,无所事事。一只小兔子看见鹰并且问它,“我能象你一样坐着什么都不干吗?”鹰回答:“行啊,为啥不行。”于是,兔子坐在鹰下面的地上休息。突然,一只狐狸出现了,它扑到兔子身上把它吃掉了。——要想坐着无所事事,你必须坐在非常、非常高的位置。故事四一只小鸟飞去南方过冬。天实在太冷了。它冻僵了,掉在一片田野上。它躺在那儿时,一头母牛走过来在它身上拉了一堆屎。冻僵的小鸟躺在粪堆里,开始感觉到了温暖。牛粪确实使它暖和过来了。它躺在温暖的牛粪中,异常高兴,并开始唱起歌来。一只过路的猫听到鸟叫赶过来看个究竟。顺着声音,它发现了牛粪下的小鸟,并迅速把它拖出来吃掉了。1)并不是每个在你身上拉屎的都是你的敌人;2)并不是每个把你拖出粪堆的都是你的朋友;3)当你深陷粪堆中的时候,最好闭上你的鸟嘴。故事五一个男人在他妻子洗完澡后准备进浴室洗澡。这时,门铃响了。妻子迅速用浴巾裹住自己冲到门口。当她打开门时,邻居鲍勃站在那儿。在她开口前,鲍勃说,“你如果把浴巾拿掉,我给你800美元。”想了一会儿,这个女人拿掉浴巾赤裸地站在鲍勃面前。几秒钟后,鲍勃递给她800美元然后离开了。女人重新裹好浴巾回到屋里。当她踏进浴室时,丈夫问她,“是谁呀?”“是邻居鲍勃。”她回答。“哦,”丈夫说,“他有没有提到还欠我800美元?”——及时与同舟共济的股东分享重要信息,将会避免不必要的曝光。故事六从前有一个和尚跟一个屠夫是好朋友。和尚天天早上要起来念经,而屠夫天天要起来杀猪。为了不耽误他们早上的工作,是他们约定早上互相叫对方起床。多年以后,和尚与屠夫相继去世了。屠夫去上天堂了,而和尚却下地狱了。Why?因为屠夫天天作善事,叫和尚起来念经,相反地,和尚天天叫屠夫起来杀生……——你做的东西是不是都是你认为对的,却不一定是对的。故事七你开着一辆车,在一个暴风雨的晚上,经过一个车站。有三个人正在焦急的等公共汽车。一个是快要临死的老人,他需要马上去医院;一个是医生,他曾救过你的命,你做梦都想报答他;还有一个女人,她是你做梦都想娶的人,也许错过就没有了。但你的车只能再坐下一个人,你会如何选择?我不知道这是不是一个对你性格的测试,因为每一个回答都有他自己的原因。老人快要死了,你首先应该先救他。你也想让那个医生上车,因为他救过你,这是个好机会报答他。还有就是你的梦中情人。错过了这个机会。你可能永远不能遇到一个让你这么心动的人了。在200个应征者中,只有一个人被雇佣了,他并没有解释他的理由,他只是说了以下的话:“给医生车钥匙,让他带着老人去医院,而我则留下来陪我的梦中情人一起等公车!”是否是因为我们从未想过要放弃我们手中已经拥有的优势(车钥匙)?有时,如果我们能放弃一些我们的固执,狭隘,和一些优势的话,我们可能会得到更多。故事八很久很久以前,人类都还赤着双脚走路。有一位国王到某个偏远的乡间旅行,因为路面崎岖不平,有很多碎石头,刺得他的脚又痛又麻。回到王宫后,他下了一道命令,要将国内的所有道路都铺上一层牛皮。他认为这样做,不只是为自己,还可造福他的人民,让大家走路时不再受刺痛之苦。但即使杀尽国内所有的牛,也筹措不到足够的皮革,而所花费的金钱、动用的人力,更不知凡几。虽然根本做不到,甚至还相当愚蠢,但因为是国王的命令,大家也只能摇头叹息。一位聪明的仆人大胆向国王提出建言:“国王啊!为什么您要劳师动众,牺牲那么多头牛,花费那么多金钱呢?您何不只用两小片牛皮包住您的脚呢?”国王听了很惊讶,但也当下领悟,于是立刻收回成命,改采这个建议。据说,这就是“皮鞋”的由来。想改变世界,很难;要改变自己,则较为容易。与其改变全世界,不如先改变自己--「将自己的双脚包起来」。改变自己的某些观念和作法,以抵御外来的侵袭。当自己改变后,眼中的世界自然也就跟着改变了。如果你希望看到世界改变,那么第一个必须改变的就是自己。心若改变,态度就会改变;态度改变,习惯就改变;习惯改变,人生就会改变!你所看到的,也许正是别人所需要的!谢谢你的转发!
馆藏&32711
TA的最新馆藏
喜欢该文的人也喜欢1450人阅读
程序人生(3)
我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;一个主类负责从命令读参数,处理命令行参数,调用发email的类。把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加1,计数器是这样来访问的http://hostname/count.cgi?id=xxx后台有一个数据库表,保存每个id(一个id对应一个被统计访问次数的页面)的计数器当前值,请求页面一次,对应id的计数器的字段加1(这里我们忽略并发更新数据库表,出现的表锁定的问题)。如果按照一般从程序实现的角度来分析,我们会这样考虑:首先是从HTTP&GET请求取到id,然后按照id查数据库表,获得某id对应的访问计数值,然后加1,更新数据库,最后向页面显示访问计数。现在假设一个没有程序设计经验的人,他会怎样来思考这个问题的呢?他会提出什么样的需求呢?他很可能会这样想:我需要有一个计数器,这个计数器应该有这样的功能,刷新一次页面,访问量就会加1,另外最好还有一个计数器清0的功能,当然计数器如果有一个可以设为任意值的功能的话,我就可以作弊了。做为一个没有程序设计经验的人来说,他完全不会想到对数据库应该如何操作,对于HTTP变量该如何传递,他考虑问题的角度就是我有什么需求,我的业务逻辑是什么,软件应该有什么功能。按照这样的思路(请注意,他的思路其实就是我们平时在生活中习惯的思维方式),我们知道需要有一个计数器类&Counter,有一个必须的和两个可选的方法:getCount()&//&取计数器值方法resetCounter()&//&计数器清0方法setCount()&//&设计数器为相应的值方法把Counter类完整的定义如下:public&class&Counter&{public&int&getCount(int&id)&{}public&void&resetCounter(int&id)&{}public&void&setCount(int&id,&int&currentCount)&{}}解决问题的框架已经有了,来看一下如何使用Counter。&在count.cgi里面调用Counter来计数,程序片断如下://&这里从HTTP环境里面取id值...Counter&myCounter&=&new&Counter();&//&获得计数器int&currentCount&=&myCounter.getCount(id);&//&从计数器中取计数//&这里向客户浏览器输出...程序的框架全都写好了,剩下的就是实现Counter类方法里面具体的代码了,此时才去考虑具体的程序语言实现的细节,比如,在getCount()方法里面访问数据库,更新计数值。从上面的例子中看到,面向对象的思维方法其实就是我们在现实生活中习惯的思维方式,是从人类考虑问题的角度出发,把人类解决问题的思维方式逐步翻译成程序能够理解的思维方式的过程,在这个翻译的过程中,软件也就逐步被设计好了。在运用面向对象的思维方法进行软件设计的过程中,最容易犯的错误就是开始分析的时候,就想到了程序代码实现的细节,因此封装的类完全是基于程序实现逻辑,而不是基于解决问题的业务逻辑。学习JDBC编程的经典错误问法是:“我怎样封装对数据库的select操作?”面向对象的设计是基于解决业务问题的设计,而不是基于具体编程技术的设计。我不会去封装select语句的,我只封装解决问题的业务逻辑,对数据库的读取是在业务逻辑的编码实现阶段才去考虑的问题。回过头看上面那个发广告邮件的例子,应该如何应用面向对象的思维方法呢?对于一个邮件来说,有邮件头,邮件体,和邮件地址这三个属性,发送邮件,需要一个发送的方法,另外还需要一个能把所有邮件地址列出来的方法。所以应该如下设计:类JunkMail属性:headbodyaddress方法:sendMail()&//&发送邮件listAllMail()&//&列邮件地址用Java来表示:public&class&JunkMail&{private&String&private&String&private&String&public&JunkMain()&{&//&默认的类构造器//&从外部配置文件读邮件头和邮件体this.head=...;this.body=...;}public&static&boolean&sendMail(String&address)&{//&调用qmail,发送email}public&static&Collection&listAllMail()&{//&访问数据库,返回一个邮件地址集合}}当把JunkMail设计好了以后,再调用JunkMail类完成邮件的发送,将是非常轻松的事情。如果说传统的面向过程的编程是符合机器运行指令的流程的话,那么面向对象的思维方法就是符合现实生活中人类解决问题的思维过程。在面向对象的软件分析和设计的时候,要提醒自己,不要一上来就去想程序代码的实现,应该抛开具体编程语言的束缚,集中精力分析我们要实现的软件的业务逻辑,分析软件的业务流程,思考应该如何去描述和实现软件的业务。毕竟软件只是一个载体,业务才是我们真正要实现的目标。但是在设计过程中,心里却往往在担心,如果我完全不去考虑程序代码的实现的话,那么我怎么知道我的设计一定合理呢?我怎么知道我设计的类、接口一定可以实现呢?所以经常可以看到的现象就是:在设计过程中,虽然知道不能过早考虑代码实现,但是每设计一个类,一个接口,心里都要不知不觉的用自己熟悉的编程语言大概的评估一下,看看能否编出来,因此,一不小心,就会又回到按照程序功能实现的思路进行设计的老路上去了。举个例子来说明,在做Web程序设计的时候,经常要遇到分页显示数据的情况。比如说需要把系统中所有的用户都列出来这样的功能。假设使用User类来表示用户,增加用户addUser(),删除用户deleteUser(),查询所有用户listUsers()方法。而数据库中有一个user表,一条记录是一个用户的信息。下面考虑一下User类的方法的实现:addUser()和deleteUser()方法都好实现,就是对数据库增加记录和删除记录。对于listUsers()方法,其实就是对user表的select,取出一个记录集。但是该怎么从listUsers()方法中得到所有用户的列表呢?一个方法调用的返回值只有一个,没有多个,所以很多情况下采用的办法就是返回值定义为集合类型,比如Vector。这样就可以在listUsers()方法的具体代码实现的时候,从数据库依次取出一个个记录,插入到Vector里面来。在主程序里面,调用listUsers()方法可以返回一个Vector,然后再对Vector遍历操作,就可以得到用户列表了。public&class&User&{public&static&void&addUser(...)&{//&数据库insert一条记录}public&static&void&deleteUser(...)&{//&数据库delete一条记录}public&Vector&listUsers(...)&{//&数据库select结果放到一个集合里面}}这样的设计基本合理,但是仍然有点小问题。因为在设计的时候,就考虑到了用Java的集合类Vector来实现对不定长数据集的存放,因而违反了面向对象设计的一个原则:在设计的时候不应过早的考虑具体程序语言的实现。所以必须用抽象的方法,和具体实现无关的方法来表达业务逻辑。我们知道,通常对具有集合特征的数据结构进行遍历通常可以使用next和hasNext方法,next实现取下一个用户,hasNext判断是否还有元素。&因此我们定义一个接口Iterator,这个接口中定义两个方法next和hasNext:public&interface&Iterator&{public&boolean&hasNext()&{}public&Object&next()&{}}而User类的listUses方法返回值改为Iterator接口的实现类:public&class&User&{...public&Iterator&listUsers()&{}...}这样就把User类的设计和具体的实现方法分离开了,因为此时任何实现了next()和hasNext()方法的类都可以做为listUsers的返回值,都可以被用来表达“用户列表”,而不仅仅可以使用Vector而已。比如,我可以用ArrayList来表达用户列表,因为ArrayList也实现了Iterator,当然我也可以自己专门写一个类来存放用户列表,只要实现next()和hasNext()方法就行了。这样在具体的编写代码的时候,程序员具有了最大的灵活性,可以根据具体的情况,采用不同的编程方法来存放用户列表。特别是降低了程序的耦合度,提高了程序的可移植性。对于上面那个JunkMail的listAllMail()方法也同样应该改为接口类型。然后,在主程序里面就这样来使用User类的listUsers方法:User&myUser&=&new&User();Iterator&iterator&=&myUser.listUsers();while&(iterator.hasNext())&{iterator.next();}这样就可以完全不用考虑程序代码实现了,从高层次上把功能抽象出来,定义成为接口,同时又可以把系统设计的很合理,完全根据业务的需求来进行设计。结语通过上面的几个例子的设计说明,使用面向对象的思维方法,其实是一个把业务逻辑从具体的编程技术当中抽象出来的过程,而这个抽象的过程是自上而下的,非常符合人类的思维习惯,也就是先不考虑问题解决的细节,把问题的最主要的方面抽象成为一个简单的框架,集中精力思考如何解决主要矛盾,然后在解决问题的过程中,再把问题的细节分割成一个一个小问题,再专门去解决细节问题。因而一旦牢牢的抓住了这一点,你就会发现在软件设计和开发过程中,你自己总是会不知不觉的运用面向对象的思维方法来设计和编写程序,并且程序的设计和开发也变得不再那么枯燥,而一个合理运用面向对象技术进行设计和架构的软件,更是具备了思维的艺术美感。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:632637次
积分:7225
积分:7225
排名:第3011名
原创:141篇
转载:114篇
评论:74条
(2)(2)(1)(2)(1)(2)(1)(1)(1)(1)(1)(2)(2)(4)(1)(2)(1)(1)(3)(3)(1)(2)(1)(1)(1)(1)(1)(5)(1)(1)(1)(1)(2)(3)(1)(3)(1)(1)(1)(1)(2)(1)(1)(4)(1)(1)(1)(1)(3)(1)(1)(3)(3)(6)(1)(5)(5)(7)(12)(1)(8)(1)(2)(2)(17)(8)(14)(3)(4)(4)(4)(5)(27)(13)(3)(14)(2)

我要回帖

 

随机推荐