大话设计模式
quan___
1万小时的锤炼是任何人从平凡变成世界级大师的必要条件
展开
-
设计模式(UML类图)
UML类图 UML类图总结总结: 类图里面 “+” 表示 public “-” 表示private “#” 表示 protected 类与线条的关系:前面(外面) 指向 后面(里面) 继承: 空心三角形+实线 实现接口:空心三角形+虚线 关联:实线箭头 聚合:空心菱形+实线箭头 组合:实心菱形+实线箭头(有基数) 依赖:虚线箭头 ...原创 2019-03-08 14:36:44 · 231 阅读 · 0 评论 -
设计模式(结构型--适配器模式)
包装出一个可以给客户调用的接口。 使用场景:希望复用一些现存的类,但是接口又与复用环境不一致的情况。原创 2019-03-11 09:42:18 · 179 阅读 · 0 评论 -
设计模式(结构型--装饰模式)
子类覆盖父类的方法时,可以在父类原始的实现前面或者后面动态的添加功能。 使用场景:需要在旧功能的基础上动态的添加新功能时。 可以很好把核心职能和装饰功能区分开,还可以去除相关类中重复的装饰逻辑。 ...原创 2019-03-11 09:40:13 · 129 阅读 · 0 评论 -
设计模式(结构型--代理模式)
代理类和真实类都继承抽象类,实现其接口,代理类里面有真实类的引用,实现也是调用真实类是实现。 使用场景: 1.远程代理 webservice就是代理模式,生成的文件就是代理。 2.虚拟代理 根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真是对象。例如:加载网页代理真是图片,先看到文字,再慢慢下载真实图片。 3.安全代理 控制真实对象访问时的权限。 4.智能...原创 2019-03-11 09:37:06 · 136 阅读 · 0 评论 -
设计模式(创建型--单例模式)
实现单例模式的5种方式: 1.饿汉式单例(立即加载方式) public class Singleton{ private Singleton(){}; private static Singleton single = new Singleton(); public static Singleton getInstance(){ return single; } } 2.懒...原创 2019-03-11 09:30:27 · 124 阅读 · 0 评论 -
设计模式(创建型--抽象工厂模式)
对比工厂方法模式,多了不同的产品。 缺点:增加产品,需要增加多个类,还需要修改三个工厂类 改进:利用简单厂家替代三个工厂类,在利用反射和配置文件实现动态的改变传值。 ...原创 2019-03-11 09:12:17 · 103 阅读 · 0 评论 -
设计模式(创建型--工厂方法模式)
将工厂类也进行抽象,多个子类factory继承父类factory,同时实现父类的实例化子类bean。原创 2019-03-08 15:10:41 · 77 阅读 · 0 评论 -
设计模式(创建型--简单工厂模式)
简单工厂模式 需要一个beanFactory,用来实例化父类bean 需要一个父类bean 多个子类bean集成父类bean 使用通过工厂类判断参数类型来实例化引用变量为父类的子类实例。 使用场景:在不确定会有多少个处理操作时应该考虑使用简单工厂模式,如针对同样的接收到的数据,处理的逻辑可能会不同,可能以后还会增加新的操作。 缺点:违反了开闭原则,增加实现需要修改工厂类。 ...原创 2019-03-08 14:58:01 · 90 阅读 · 0 评论 -
设计模式(分类)
23种设计模式可以分为3大类: 创建型模式 结构型模式 行为型模式 其中 简单工厂模式 后面被归为 创建型模式。原创 2019-03-08 14:52:50 · 112 阅读 · 0 评论 -
设计模式(六大原则)
1.单一职责原则 2.开放-封闭原则 3.依赖倒转原则 4.里氏代换原则 5.接口隔离原则 定义:类之间的依赖关系应该建立在最小的接口上。 通俗地讲:建立单一接口,不要建立庞大臃肿的接口;尽量细化接口,接口中的方法尽量少。 注意: 接口尽量小,但是要有限度。对接口进行细化可以提高程序设计灵活性,但是如果过小,则会造成接口数量过多,使设计复杂化,所以一定要适度。 提高内聚,减...原创 2019-03-08 14:45:44 · 101 阅读 · 0 评论 -
设计模式(行为型--策略模式)
Context类有个属性是Strategy,通过构造函数,需要哪个具体的策略就传入哪个具体的实现类。 优点:封装了变化,具体的实现策略的类可以单独修改测试。 使用场景:不同时间应用不同的业务规则。 通过简单工厂和策略模式的结合,可以避免客户端调用的判断,将Context改造成工厂类。 工厂模式和策略模式的区别在于实例化一个对象的位置不同,对工厂模式而言,实例化对象是放在服务端的,即放在了工...原创 2019-03-11 09:48:28 · 148 阅读 · 0 评论