![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
会跑的茶叶蛋
这个作者很懒,什么都没留下…
展开
-
自己对AOP的理解笔记
15. AOP第一次听说AOP是在spring框架中听到的。在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。看文字晦涩难懂,直接看个例子。下面的原创 2021-05-04 19:04:23 · 68 阅读 · 0 评论 -
设计模式——观察者模式
14.观察者模式咱们先看看源码再分析,这个例子摘自菜鸟教程。Subject 对象带有绑定观察者到 Client 对象和从 Client 对象解绑观察者的方法,可以看成一个广播站。能接受信息,并广播给观察者们。import java.util.ArrayList;import java.util.List; public class Subject { private List<Observer> observers = new ArrayList<O原创 2021-05-02 13:30:03 · 50 阅读 · 0 评论 -
设计模式——状态模式
13. 状态模式状态模式与策略模式相似,为了避免使用if else 或 switch 语句,状态模式把状态封装了起来。看一下这个例子。摘录自菜鸟教程public interface State { public void doAction(Context context);}public class StartState implements State { public void doAction(Context context) { System.out.pri原创 2021-05-02 12:26:09 · 42 阅读 · 0 评论 -
设计模式——策略模式
12.策略模式策略模式其实是把相似的且容易重复出现的方法,一个一个封装成类,然后用哪个就调用哪个类。看个例子。public interface Travel { void travel();}public class ByCar implements Travel{ @Override public void travel() { System.out.println("乘车前进"); }}public class ByFly impleme原创 2021-05-02 10:50:30 · 42 阅读 · 0 评论 -
设计模式——组合模式
11. 组合模式(Composite)emmm这个模式跟数据结构的树状图好像也没太大区别哈。很简单,就是对象里面有对象集。下面的例子摘自菜鸟教程。import java.util.ArrayList;import java.util.List; public class Employee { private String name; private String dept; private int salary; private List<Employee>原创 2021-05-02 10:10:39 · 44 阅读 · 0 评论 -
设计模式——外观类模式
10.外观类模式外观类就像一个黑盒,只给你结果,不告诉你具体内容。也像一个看不见里面的内容的贩卖机,只能通过屏幕进行查看商品及购买,您只管买,其他的事儿我来解决!用到了最少知识原则(least KnowLedge Principle)。下面用一个例子来实现public interface Buy { void buy();}public class BuyWater implements Buy{ @Override public void buy() {原创 2021-05-02 09:48:45 · 173 阅读 · 0 评论 -
设计模式——适配器模式
9.适配器模式9.1 对象适配器是个这,有两种接口,都有各自的实现类,我现在要使IRoundPeg像IPeg规定的那样调用insertIntoHole方法来执行自己的insertIntoRoundHole方法的内容。那么通过写一个适配器就可以完成这个任务。创建一个适配器,实现IPeg接口,在insertIntoHole调用IRoundPeg的insertIntoRoundHole方法即可实现public interface IPeg { void insertIntoHole();}p原创 2021-05-02 09:32:28 · 61 阅读 · 0 评论 -
设计模式——代理模式
8.代理模式代理模式跟装饰器模式好像,只不过设计目的不同。静态代理下面这个例子来自——菜鸟教程public interface Image { void display();}public class RealImage implements Image { private String fileName; public RealImage(String fileName){ this.fileName = fileName; loadFrom原创 2021-05-02 08:59:12 · 38 阅读 · 0 评论 -
设计模式——装饰器模式
7.装饰器模式个人理解,装饰器模式是为了实现修改原代码而实现增加或删除对象的内部功能的一种设计模式。看一下装饰器模式的实现——这个例子来自漫画设计模式:什么是 “装饰器模式” ?_程序员小灰的博客-CSDN博客。public interface Car { void run();}public class BenzCar implements Car{ @Override public void run() { System.out.println("奔驰原创 2021-05-01 08:17:07 · 101 阅读 · 1 评论 -
设计模式——控制反转
6. 控制反转前边的模板方法的回调,就是一种控制反转的应用import java.sql.ResultSet;public class SimpleJdbcQueryTemplate { public <T> T query(String queryString , ResultSetHandler<T> rsHandler){ //回调 return rsHandler.handle(rs); }}return rsHa原创 2021-05-01 07:55:15 · 293 阅读 · 1 评论 -
设计模式——工厂模式
4. 工厂模式工厂模式其实工厂模式,就是一个疯狂返回新对象的一个类的实例。就像流水线一样。跟单例模式的区别是,单例模式返回对象唯一,而工厂模式疯狂返回新创建的对象。public interface Factory { Product createProduct();}public interface Product { //定义产品的方法啊啥的。}public class ConcreteFactory implements Factory{ @Override public原创 2021-04-28 08:37:26 · 45 阅读 · 0 评论 -
设计模式——单例模式
3.单例模式3.1最简单的单例public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { } public static Singleton getInstance() { return instance; }}线程安全,如果需要复杂的初始化,这时候应该写一个static {} 静态代码块,完成对instatnce的初始化。3原创 2021-04-27 20:59:08 · 47 阅读 · 0 评论 -
设计模式——模板模式
模板方法(Template Method)模板方法能重复的使用代码逻辑,让所继承的子类实现的方法按照一定的逻辑顺序执行。TemplatePatternDemo,主类public class TemplatePatternDemo { public static void main(String[] args) { Game game = new Cricket(); game.play(); System.out.println();原创 2021-04-27 09:05:09 · 44 阅读 · 0 评论