
设计模式
baby-shi
stay hungry ,stay foolish.
展开
-
代理模式
代理模式1、静态代理2、JDK动态代理3、cglib代理需求:现在有一个前人写好的计算接口及其实现类,里面有add,sub,mul,div方法。现在想要在其中添加日志的方法,其如:传入的值是a和b,计算结果是a+binterface IMath { int add(int a,int b); int sub(int a,int b); int mul(int a,int b); int div(int a,int b);}class Math implement原创 2020-08-28 17:43:48 · 261 阅读 · 0 评论 -
策略模式
策略模式一、问题引出二、添加功能三、继续改进四、策略模式该设计模式讲解针对于一个游戏公司的场景,并根据场景的游戏功能的添加来引出策略模式的使用及其为什么要使用策略模式。一、问题引出场景:有一家游戏公司,制作了一款鸭子游戏,在这个游戏中,很多角色都是鸭子,不同鸭子之间有共性,为了提高代码的重用性,开发人员就制作了一个父类Duck,将这些鸭子的共性提到父类中abstract class Duck{ public void quack(){ System.out.println("原创 2020-08-22 11:48:39 · 194 阅读 · 0 评论 -
工厂模式(简单工厂、工厂方法和抽象工厂)
工厂模式我们平时创建对象的方式://抽象产品interface Foot { void eat();}//具体产品(汉堡包class Hamburger implements com.shi.design.simple_factory.Foot { @Override public void eat() { System.out.println("在吃汉堡包!"); }}//上面代码为服务端,下面为客户端,我们身份为客户身份,不能修改服务端代原创 2020-07-27 20:00:24 · 315 阅读 · 0 评论 -
原型模式
原型模式需求:简单来说,就是OA系统中,一个员工填写周报的内容,每个星期大多数位置内容相同需要修改的就只有少数部分。如果每个月都要全部进行填写,那么久又麻烦效率又低,故可以保存周报模板,只需要修改不同部分即可。浅克隆class Worker implements Cloneable{ private int id; private String context; private String sex; private Date date; //注意要将重写的clo原创 2020-07-27 15:29:18 · 175 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式需求: 定义一个电脑类,并实例化该电脑类对象,并为该对象的属性赋值1、平时创建对象并赋值的方式平时,我们在实例化对象之后必须为该对象的每一个属性赋值,这样对我们来说太麻烦了,而且还违反了迪米特法则。我们的例子来说,这就相当于我们我们去买电脑,商家把所有配件给我们,叫我们自己组装class Computer { private String cpu; private String gpu; private String memery; private Str原创 2020-07-27 15:52:28 · 165 阅读 · 0 评论