![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
风zi
这个作者很懒,什么都没留下…
展开
-
十一、外观模式
一、外观模式外观模式(fasade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。类型:结构型使用场景:1.子系统越来越复杂,增加外观模式提供简单高层调用接口2.构建多层系统结构,利用外观对象作为每层的入口,简化层间调用优点:1.简化调用过程,无需深入了解子系统,防止带来风险2.减少系统依赖,松散耦合3.更好的划分访问层次...原创 2018-11-29 23:11:25 · 259 阅读 · 0 评论 -
十、原型模式
原型模式原型模式(prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。优点:1.简化创建过程,不需要知道创建细节,不需要调用构造函数来创建对象;2.原型模式比直接new一个对象性能高缺点:1.必须匹配克隆方法,也就是需要重写Object类的clone函数2.对克隆复杂对象或对...原创 2018-11-29 22:11:40 · 123 阅读 · 0 评论 -
九、单例设计模式
一、介绍单例模式,是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。适用场合:1.需要频繁的进行创建和销毁的对象;2.创建对象时耗时过多或耗费资源过多,但又经常用到的对象;3.工具类对象;4.频繁访问数据库或文件的对象。二、实现方式(一)饿汉式实现方式饿汉式:类加载时就初始化实例public class Singleton { //静态常量方式,final...原创 2018-11-29 10:50:53 · 165 阅读 · 0 评论 -
八、抽象工厂设计模式
抽象工厂设计模式定义:抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,无需指定它们具体的类类型:创建型抽象工厂-适用场景1.客户端(应用层)不依赖与产品类示例如何被创建、实现等细节2.强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码3.提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖与具体实现优点:1.具体产品在应用层代码隔离,...原创 2018-11-25 22:50:40 · 196 阅读 · 0 评论 -
七、工厂方法设计模式
工厂方法设计模式一、工厂方法特点1.工厂方法-定义类型:①.定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类工厂方法让类的实例化推迟到子类中进行②.类型是创建类型2.工厂方法-适用场景①.创建对象需要大量重复的代码②.客户端(应用层)不依赖与产品类实例如何被创建、实现等细节③.一个类通过其子类来指定创建哪个对象3.工厂方法-优点①.用户只需要关心所需要产品对应的工...原创 2018-11-25 16:48:58 · 151 阅读 · 0 评论 -
六、简单工厂设计模式
简单工厂一、适用场景1.工厂类负责创建的对象比较少;2.客户端(应用层)只知道传入工厂类的参数对于如何创建对象(逻辑)不关心;####优点:只需要传入一个正确的参数,就可以获取你所需要的对象而无需知道其创建细节缺点:工厂类的职责相对过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则二、看一下实现代码1.下面先看一下简单工厂的实现,需要传入一个字符串来选择想要创建的类型,由下...原创 2018-11-25 16:50:07 · 148 阅读 · 0 评论 -
五、迪米特原则
迪米特原则定义:一个对象应该对其他对象保持最少的了解。又叫最少知道原则*尽量降低类与类之间的耦合*强调只和朋友交流,不和陌生人说话朋友:出现在成员变量、方法的输入、输出参数中的类称为成员朋友类,而出现在方法体内部的类不属于朋友类。优点:降低类之间的耦合二、代码演示 假设场景:老板需要知道某个领导下面有多少员工,只需要知道某个领导即可,而不需要与员工进行接触//老板类public...原创 2018-11-25 16:47:27 · 195 阅读 · 0 评论 -
四、接口隔离原则
接口隔离原则注意适度原则,一定要适度优点:符合我们常说的高内聚低耦合的设计思想从而使得类具有很好的可读性,可扩展性和可维护性。二、代码演示 1、首先写一个具有多个功能的接口//动物特性的接口public interface IAnimalAction { void eat();//吃 void fly();//飞 void swim();//游泳} 2...原创 2018-11-25 16:46:47 · 166 阅读 · 0 评论 -
三、单一职责原则
单一职责原则定义:不要存在多于一个导致类变更的原因一个类、接口、方法只负责一项职责一个类、接口、方法只负责一项职责优点:降低类的复杂度、提高类的可读性,提高系统的可维护性、降低变更引起的风险。二、代码讲解 下面先看一个例子 1、看一个复杂点的接口public interface ICourse { //获取视频名称、与视频字节流的方法 String getCour...原创 2018-11-25 16:44:54 · 246 阅读 · 0 评论 -
二、依赖倒转原则
依赖倒转原则定义:高层模块不应该依赖底层模块,二者都应该依赖其抽象;总结: 1.抽象不应该依赖细节,细节应该依赖抽象; 2.针对接口编程,不要针对实现编程;优点:可以减少类间的耦合性、提高系统稳定性,提高代码可读性和可维护性,可降低修改程序所造成的风险二、代码下面进入代码演示阶段: 场景模拟:一个用于定义行为的接口,多个实现接口不同行为的类,一个使用不同行为实现类的操作;...原创 2018-11-25 16:44:02 · 101 阅读 · 0 评论 -
一、开闭原则
开闭原则定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。总结:用抽象构建框架,用实现扩展细节优点:提高软件系统的可复用性及可维护性假设场景一:接口A里面定义了一个书本的基本信息,但是具体是什么书我们暂时不知道,用抽象来构建框架代码实现:1.定义接口–Ibook用接口来抽象定义一本书的大概信息public interface Ibook { Integer get...原创 2018-11-25 16:42:37 · 1081 阅读 · 0 评论