随笔分类 - 设计模式
摘要:依赖倒置原则:即抽象不应该依赖细节,细节应该依赖于抽象;即要针对接口编程,不要对实现编程。 依赖倒置原则:高层模块不应该依赖低层模块。两个都应该依赖抽象。 抽象不应该依赖细节,细节应该依赖抽象。 里氏代换原则:子类型必须能够替换掉它们的父类型。即一个软件实体如果使用的是一个父类的话,那么一定适用于其它子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序...
阅读全文
摘要:开放封闭原则:是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。这个原则其实有两个特征,一个是:对于扩展是开放的,另一个是:对于更改是封闭的。 怎样的设计才能面对需求的改变缺可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢?开放封闭原则给我们答案。 无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须...
阅读全文
摘要:单一职责原则:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些指责耦合在一起,一个职责的变化可能会消弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。如果你能够想到多余一个的动机去改变一个类,那么这个类就具有多余一个的职责。
阅读全文
摘要:面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。策略模式(Strategy):它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。简单工厂模式需要让客户端认识两个类,而策略模式与简单工厂结合的用法,客户端就只需要认识一个类。耦合更加降低。策略模式优点:策略模式是一种定义一系列算法的...
阅读全文
摘要:简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式的缺点体现在其工厂类上,由于工厂类集中了所有实例的创建逻辑,所以高内聚方面做的并不好。另外,当系统中的具体产品类不断增多时,可能会出现要求工厂类也要做相应的修改,扩展性并不好。
阅读全文
摘要:第一章中讲到的鸭子问题:首先写了一个父类,具有叫,游泳方法和display抽象方法。具体的鸭子则继承父类。当需要展示鸭子的飞的行为时,直接在父类上加了个FLY方法。这么做产生了一个后果,那就是继承了父类的橡皮鸭也有了飞的动作。这是不能接收的。通过这件事,我们体会到:当涉及“维护”时,为了“复用”目的而使用继承,结局并不完美。 利用继承来提供Duck的行为,会导致的缺点主要是:改变会牵一发动全身,造...
阅读全文
摘要:做一个商场收银的小系统。刚开始编程的时候,没有想到代码的可维护性,因此编出来的程序只能是正常收费的情况。当商场打算搞促销那该怎么办呢?只好重写程序。再次写这个程序的时候要考虑的代买的可维护性。 我们考虑一下,商场无论怎么搞促销活动,不同的仅仅是收银时的打折处理方法,而基本的计算总价方法是相同的,不同的打折手段是特性。因此我们可以写一个抽象类,在这个抽象类中有一个抽象方法(这个抽...
阅读全文
摘要:当我们学习了面向对象分析设计编程思想,我们要考虑通过封装、继承、多态把程序的耦合度降低。使得程序具备五个特点:可维护、可复用、可扩展、灵活性好。 写出来的程序代码要规范,变量的命名等都要有意义,最后都用英文代替,要有异常判断和错误处理。 有人说初级程序员的工作就是复制和粘贴,这其实是非常不好的编程习惯,因为当代码中重复的代码多到一定程度,维护的时候,可能就是一场灾难。...
阅读全文
浙公网安备 33010602011771号