设计模式
奥破1104x
11
展开
-
【设计模式】用英雄联盟来解释代理模式
这期的主人公是安妮,在中路紧张的对线提莫中,好不容易到6级了,可以一套秒人了,安妮召唤出了她的熊提伯斯。然而提伯斯脑袋空空,只会一个劲的追着人拍,就需要安妮代理来控制首先构建一个接口,其实不是必要的,但是毕竟annie和Tibbers都实现了“攻击”这个功能,为了代码的规范和可读性,还是写上。并且在其他场景下可能会是必要的。public interface NormalAttack{ ...原创 2020-03-29 20:17:22 · 266 阅读 · 0 评论 -
【设计模式】用英雄联盟来解释装饰者模式
定义 Decorator(装饰者)侧重于为一个基础对象动态地增强它的职责或能力。这是面对排列组合所造成的子类数爆炸问题的一种灵活的解决方案。大家好,我是uzi,擅长被4保一,今天我玩的是瘟疫之源。主要靠平a输出。为了面向对象思想及方便管理攻击力及特效,我把它拉出一个接口。public interface NormalAttack{ void makeADAttack();}...原创 2020-03-25 14:55:38 · 377 阅读 · 2 评论 -
设计模式学习-1 七种设计原则
开闭原则:对扩展开放,对修改关闭。当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。依赖倒置原则:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。即 降低了客户与实现模块之间的耦合。单一职责原则:单一职责原则规定一个类应该...原创 2019-10-01 15:08:20 · 85 阅读 · 0 评论 -
设计模式学习-2 原型模式,建造者模式
1、原型模式:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。主要是继承java中的Cloneable接口,是浅克隆public class ProtoTypeCitation{ public static void main(String[] args) throws CloneNotSupportedException { ...原创 2019-10-01 16:49:31 · 120 阅读 · 0 评论 -
设计模式学习-3 代理模式,装饰模式
代理模式:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。(可以在那个类方法的前后加方法)代理模式的主要角色如下:抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对...原创 2019-10-01 19:05:23 · 106 阅读 · 0 评论 -
设计模式学习-4 观察者模式
定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要角色:抽象主题(Subject)角色:也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。具体主题(Concrete Subject)角色:也叫具体目标类,它实现抽象目标中的通知方法,当具体主题的内部状态发生改...原创 2019-10-01 19:33:03 · 104 阅读 · 0 评论 -
设计模式学习-5 工厂模式
普通工厂模式:抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。具体产品(ConcreteProduct):实现了抽象产品角色所...原创 2019-10-01 19:56:47 · 86 阅读 · 0 评论