设计模式
司天宏
人要有野心和向上的力量
展开
-
设计模式---结构型---装饰器模式
什么是装饰器模式?装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。我们通过下面的实例来演示装饰器模式的用法。其中,我们将把一个形状装饰上不同的颜色,同时又不改变形状类。普通示例1.新建一个普通的蛋糕类import java.math.BigDecimal;public class原创 2020-11-15 23:42:29 · 186 阅读 · 0 评论 -
设计模式---行为型---模板模式(Template )
一 . 模板模式介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。抽象类体现的就是一种模板设计模式,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展,改造,但子类会保留抽象类的行为方式解决的问题当功能内部一部分实现是确定的,一部分实现是不确定的,这是可以把不确定的部分暴露出去,让子类去实现换句话说,在软件开发中实现一个算法时,整体步骤很固定,通用,这些步骤已经在父类写好了,但是某些部分易变,易变部分可以原创 2020-11-05 21:50:53 · 107 阅读 · 0 评论 -
设计模式---创建型---单例设计模式(Singleton)
一.单例模式介绍所谓的单例设计模式,就是采取一定的方法保证在整个软件系统中,对某个类 只能存在一个对象实例 ,并且该类只提供一个取得对象实例的方法,如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但是在类内部仍可以产生该类的对象,因为在类的外部无法得到类的对象,只能调用该类的某个静态方法以返回内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部的该类对象的变量也必须是定义成静态的e原创 2020-11-03 22:34:16 · 146 阅读 · 0 评论 -
设计原则---迪米特法则
迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP),其定义如下: 迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。 问题由来:类与类...原创 2019-02-04 21:03:12 · 203 阅读 · 2 评论 -
设计原则---接口分离原则
定义如下: 接口隔离原则(Interface Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口. 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别...原创 2019-02-01 15:16:01 · 1011 阅读 · 0 评论 -
设计原则---依赖倒置原则
如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的经典著作“Agile Software Development, Principles, Pattern...原创 2019-02-01 14:57:00 · 209 阅读 · 0 评论 -
设计原则---里氏替换原则
里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗...原创 2019-02-01 14:39:59 · 149 阅读 · 0 评论 -
设计模式---单一职责原则
一.单一职责原则单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。原因:这样的话,每个类只需要负责自己的那部分,类的复杂度就会降低。如果职责划分得很清楚,那么代码维护起来也更加容易。试想如果所有的功能都放在了一个类中,那么这个类就会变得非常臃肿,而且一旦...原创 2019-02-01 14:05:24 · 224 阅读 · 0 评论 -
设计模式---概述
零.设计模式1. 什么是模式:模式是在特定环境下人们解决某类重复出现问题的一套成功或有效的解决方案。【A pattern is a successful or efficient solution to a recurring problem within a context】每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重...原创 2019-01-17 17:34:08 · 186 阅读 · 0 评论