
GoF
文章平均质量分 51
霜序0.2℃
风信子
展开
-
OOP七大原则
OOP七大原则开闭原则对拓展开发,对修改关闭即不改变原来的程序,而是在其基础上拓展里氏替换原则继承必须保证超类所拥有的性质在子类中依然成立可以写子类来添加新功能,但是尽量不要改变父类原有的功能,如果修改了父类,那整个继承体系的复用就会越来越差依赖倒置原则要面向接口编程,不要面向实现编程降低程序之间的耦合性,抽象不依赖细节,细节依赖抽象单一职责原则控制类的粒度大小,将对象解耦,提高其内聚性尽量保证,一个方法只做一件事情接口隔离原则要为各个类建立它们需要的专用接口原创 2021-02-23 21:34:47 · 141 阅读 · 0 评论 -
观察者模式简单例子
观察者模式核心:在抽象类里有一个 ArrayList 存放观察者们代码不算完整,那个table的展示省略package com.cai.observer;import java.util.ArrayList;import java.util.List;/** * @Description * @Author Cai * @Create 2021-06-12-15:34 */interface Table { void show(); void notifyData原创 2021-06-12 16:12:03 · 196 阅读 · 0 评论 -
访问者模式的一个小例子
用junit来测试代码public class fwzTest { @Test public void Test1(){ VistorBei girl = new Girl(); VistorBei guy = new Guy(); China china = new China(); china.add(girl); china.add(guy); Vistor enemy = new En原创 2021-06-02 13:45:03 · 153 阅读 · 0 评论 -
适配器模式
文章目录适配器模式类适配器缺点对象适配器优点代码演示适配器模式适配器模式是一种结构型设计模式简单说,就像网线和没有网线接口的电脑一样,需要一个适配器(中间者)进行转换在代码中体现的就是把这个类转换成客户希望的另一个类不兼容的类能一起运行而细分适配器又分两类类适配器类的适配器,就是对类的适配举个例子:假设#mermaid-svg-5aTtS4J2RjA4g4QD .label{font-family:'trebuchet ms', verdana, arial;font-family原创 2021-03-15 12:32:44 · 112 阅读 · 0 评论 -
策略模式
文章目录设计场景代码策略模式优点和缺点是抄的,你自己看看问题,理解理解设计场景动作冒险游戏,游戏中有一系列角色(Character),包括国王(King)、皇后(Queen)、骑士(Knight)、妖怪(Troll),这些角色可以在游戏中每一次使用一个武器(Weapon)来攻击对方,并且可以在运行时切换武器,为了增加游戏的乐趣,可以有的武器包括:匕首、宝剑、斧头、弓箭等等,可能以后又更时髦的武器出现。请设计该场景。从游戏的场景看:角色、武器应设计为聚合关系从字面上看:角色使用武器攻击对方角色,临时依原创 2021-03-10 15:53:44 · 281 阅读 · 0 评论 -
类或对象的基本关系 关联 组合 聚合 依赖
文章目录关联组合聚合依赖关联关联,关联关系是一个笼统的说法,实际包括两个具体方式即组合和聚合组合我们看一下代码Public class A { Private B b=new B();}我们知道,组合是一种强联系的关系,比聚合的关系更加紧密类比人和手,手组成了人,手是人的一部分,手是不能换的,这就是组合关系像上面的代码显示:A类对象创建时,B类对象也创建了,是一体的聚合Public class A { Private B b; Public set(B b){ This.b原创 2021-03-10 14:33:13 · 178 阅读 · 0 评论 -
原型模式
文章目录原型模式实现形式代码实现应用原型模式即对于对象,我们通过类似复制的形式进行克隆,对于创建对象代价较大时,使用new进行创建就会使效率低下,使用原型模式就会提高效率需要注意的就是深克隆和浅克隆实现形式实现Cloneable接口重写clone方法代码实现@Data@NoArgsConstructor@AllArgsConstructorpublic class Pig implements Cloneable{ private int weight; private原创 2021-03-09 20:18:36 · 126 阅读 · 0 评论 -
工厂模式(一)
文章目录简单工厂模式工厂方法模式总结工厂方法的目的:将实现类和实体类中间多加一层,使实体类统一调度,而我们只需要接触那个中间层,使实现类和实体类解耦(简单说就是在main函数里不要new实体类的对象,由创建该对象的工厂去控制,这时候new的是工厂,而不是main)D:.├─method│ Consumer.java│ Filco.java│ FilcoFactory.java│ KeyBoard.java│ KeyBoardFactory.原创 2021-03-08 11:55:01 · 160 阅读 · 0 评论