不变@变---软件设计的永恒之道
静@动----UML建模
可维护性&可复用性&独立
软件设计原则(善为士者不武:一个好的软件设计师在其设计的软件投入使用之后很少作大规模的修改):
(1)"开-闭"原则(Open-Closed Principle)
对扩展开放,对修改关闭:即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 (用面向对象的语言来讲,不允许更改的是系统的抽象层,而允许扩展的是系统的实现层,所以,这一原则主要体现在系统接口和抽象类的设计,这个抽象层预见了所有的可能扩展,因此,在任何扩展下都不会改变,因此在任何扩展的情况下都不会改变,这使得系统的抽象层不需要修改,从而做到了对修改关闭;同时,由于抽象层导出的一个或多个新的具体类可以改变系统的行为,因些系统的设计对扩展是开放的)
要百分百做到"开-闭"原则是不可能的,以下的原则是"开-闭"原则的手段和工具,是附属于"开-闭"原则的:
(2)里氏代换原则(Liskov Substitution Principle)
这一原则说,任何基类可以出现的地方,子类一定可以出现,这一原则是对实现抽象化的具体步骤的规范。
(3)依赖倒转原则(Dependency Inversion Principle)
这个原则说的是要依赖于抽象,不要依赖于实现
(4)接口隔离原则(Interface Segregation Principle)
这个原则讲的是应当为客户端提供尽可能小的单独接口,以限制软件实体间通信的宽度。
(5)合成/聚合复用原则(Composition/Aggregation Principle)
这个原则讲的是要尽量使用合成/聚合,而不是用继承关系达到复用的目的.这个按我的理解就是:比如说有父子两个类都在用到一个方法,我们可以把这个方法封装到另一个类C里面,在父子类里拥有C的引用以达到复用.
(6)迪米特法则(Law of Demeter--LoD)
这个法则讲的是软件实体之间应该尽可能少地发生相互作用,以限制实体间通信的宽度和深度
Java中的模式
(1)策略模式
策略模式讲的是,如果有一组算法,那么就把每一个算法封装到一个类里,再让这些类继承一个抽象类,使得这些类可以互换.
(2)简单工厂模式
对重构的讨论:
如果一个条件转移语句没有涉及到重要的商务逻辑,或者不会随时间的变化而变化,这时候将条件转移语句改写成为多态性就是一种没有意义的浪费.
java.util.Calendar并不能容纳中国阴历,所以它并不符合"开-闭"原则
分享到:
相关推荐
《Java与模式》是闫宏大师的一部经典之作,它将古老的哲学智慧——道德经的智慧,巧妙地融入到现代编程语言Java的设计模式之中。这本书不仅深入浅出地讲解了23种经典的设计模式,还提供了丰富的实践案例,旨在帮助...
知识点: 1. Java设计模式的定义与...以上内容涵盖了《java与模式》一书介绍的关键知识点,以及Java学习资源和学习心态的重要性。希望读者能够对这些知识点有更深入的了解,并将之应用到日常的Java学习和开发工作中。
《Java与模式》是一本深度探讨Java编程语言与设计模式结合应用的经典著作。设计模式是软件工程中的宝贵经验总结,是解决常见问题的有效方案模板。Java作为一种广泛应用的面向对象编程语言,其灵活性和强大功能使其...
《Java与模式》是阎宏博士的一本经典著作,它深入浅出地介绍了如何在Java编程中应用设计模式。这本书不仅讲解了设计模式的基本概念,还涵盖了23种经典的GOF设计模式,并结合Java语言特性进行了详细的解释和实例演示...
《Java编程模式与范例》是一本深入探讨Java编程中常用设计模式和实践案例的书籍。这本书旨在帮助Java开发者理解和应用各种编程模式,提升代码质量和可维护性。设计模式是软件开发中的宝贵经验总结,它们代表了在特定...
- 抽象工厂模式:为一组相关的对象提供一个统一的接口,使客户类与具体实现解耦。 - 建造者模式:将复杂对象的构建与其表示分离,使得相同的构建过程可以创建不同的表示。 - 原型模式:通过复制已有对象来创建新...
《Java与模式》是一本深度探讨Java编程语言与设计模式结合的著作,旨在帮助开发者更好地理解和应用设计模式在实际项目中。源代码是书中理论知识的实践体现,是学习设计模式的重要辅助材料。以下是根据标题和描述提炼...
Java设计模式是软件工程中的一种最佳实践,它是一种在特定情境下解决常见问题的经验总结。在Java编程中,设计模式可以提升代码的可读性、可维护性和复用性,帮助开发者构建更健壮、更灵活的系统。本资料包“Java与...
《Java与模式》一书是Java编程领域中的经典之作,由资深软件开发人员撰写,深入浅出地介绍了如何在Java编程中应用设计模式。这本书旨在帮助开发者理解和掌握面向对象设计的原则,提高代码质量和可维护性。源代码是书...
《Java与模式》是阎宏的经典著作,这本书深入探讨了如何在Java编程中应用设计模式,为Java开发者提供了丰富的实践经验和理论指导。设计模式是软件工程中的重要概念,它总结了在特定情境下解决问题的常见方法,使得...
《Java与模式》是闫宏博士撰写的一本深入探讨Java编程与设计模式的著作。这本书在Java开发领域具有很高的知名度,对于理解面向对象设计原则、提高软件开发能力有着重要的指导意义。以下是根据书名和描述提炼出的一些...
根据给定的信息,“Java脚本编程:语言、框架与模式”这一主题包含了三个核心部分:Java作为一门编程语言的基础知识、流行的Java开发框架以及在Java编程中常用的软件设计模式。 ### Java编程语言 #### 1. Java语言...
1. 单例模式:确保一个类只有一个实例,并提供全局访问点。在Java中,可以通过双重检查锁定(Double-Check Locking)或静态内部类等方式实现。 2. 工厂模式:定义一个创建对象的接口,但让子类决定实例化哪一个类。...
根据提供的文件信息,我们可以推断出这是一份关于获取《Java与模式》这本书PDF版本的资源分享。然而,为了满足您对于详细知识点的需求,我们将会围绕《Java与模式》这一主题进行深入探讨,涵盖该书可能涉及的重要...
- 单例模式:确保一个类只有一个实例,并提供一个全局访问点。 - 工厂方法模式:定义一个创建对象的接口,但让子类决定实例化哪一个类。 - 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,无需指定...
10. 观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。Java的`java.util.Observable`和`java.util.Observer`接口实现了观察者模式。 11. ...
《设计模式:Java与模式》是一本专注于Java编程语言中设计模式应用的著作,旨在帮助忙碌的Java系统设计师迅速掌握并应用设计原则和经典设计模式。设计模式是软件工程中的重要概念,它代表了在特定情境下解决问题的...
第三章(第80页)主要讨论了几种结构型模式: - **适配器模式**(第81页):该模式用于将一个类的接口转换成客户希望的另一个接口,从而使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。书中通过数据在...
- 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - 访问者模式:表示一个作用于某对象结构中的各元素的操作,它...
建造者模式将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。在JDK中的实例包括: - java.lang.StringBuilder#append(),字符串构建器。 - javax.swing.GroupLayout.Group#addComponent()...