摘要:一、描述: 某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。 二、特点: 1.单例类只有一个实例对象 2.该单例对象必须由单例类自行创建 3.单例类对外提供一个访问该单例的全局访问点。 三、优点: 1.单例模式可以保证内存里只有一个实例,减少了内存的开销。 2
阅读全文
摘要:一、原则: 要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 二、和继承复用的区别 合成复用和继承复用在类的关系有差别,一个是继承,一个是组合关系。我认为在实际使用时,可以根据业务场景来区别使用,这样不会很乱。 继承复用的优缺点: 优点: 1.使用比较方便,
阅读全文
摘要:一、原则: 一个类对另一个类的依赖应该建立在最小的接口上。要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。 二、作用: 1.将臃肿庞大的接口分解为多个粒度小的接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。 2.接口隔离提高系统的内聚性,减少了对外
阅读全文
摘要:一、原则: 如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。 二、作用: 1.降低了类之间的耦合度,提高了模块的相对独立性 2.由于亲和度降低,从而提高了类的可复用性和系统的扩展性。 3.过渡使用迪米特法则会使
阅读全文
摘要:一、原则: 规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。 二、作用: 1.降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多想职责简单得多。 2.提高类的可读性。复杂性降低,自然其可读性会提高 3.提高系统的可维护。 4.变更引起的风险降低。变更是必然的,如果单一职责原则遵
阅读全文
摘要:一、原则: 高层模块不应该依赖低层模块,两者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。面向接口编程,不要面向实现编程。 二、作用: 1.可以降低类间的耦合性 2.可以提高系统的稳定性 3.减少并行并发引起的风险 4.提高代码的可读性和可维护性 三、实现: 1.通过面向接口的编程来降低类
阅读全文
摘要:一、描述: 将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。 二、特点: 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效,根本无须知道对象创建的细节。 三、优点: (1)Java自带
阅读全文
摘要:一、原则: 继承必须确保超类所拥有的性质在子类中仍然成立。子类可以扩展父类的功能,但不能改变父类原有的功能。子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。 二、作用: 1.里式替换原则是实现开闭原则的重要方式之一。 2.它克服了继承中重写父类造成的可复用性变差的缺点。 3.它
阅读全文
摘要:一、原则: 软件实体应当对扩展开放,对修改关闭。当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。 二、软件实体包含哪些? 1.项目中划分出的模块 2.类与接口 3.方法 三、 作用: 1.对软件测试的影响。软件遵守开闭原则的话,软件测试时只需
阅读全文
摘要:设计模式,即Design Patterns,是指在软件设计中,被反复使用的一种代码设计经验。使用设计模式的目的是为了可重用代码,提高代码的可扩展性和可维护性。 可复用性,可维护性,可读性,健壮性,安全性 1995年,GoF(Gang of Four,四人帮)合作出版《设计模式:可复用面向对象软件设计
阅读全文