- 博客(11)
- 资源 (7)
- 问答 (2)
- 收藏
- 关注
原创 杂记 JSP与Servlet通信
1. 我看的例子里都是在servlet里通过request.getParameter("jsp中元素的name值");来获取jsp中元素的value值。但是其实这种方法只限于<input>元素,就是输入框,每个输入框有name属性,value属性则是用户输入进去的。今天要写的一个功能是,用户点击不同的超链接,转换到不同的页面。以前写静态网页的时候,都是直接在<a>元...
2019-06-28 21:16:20 343
原创 8. Factory Pattern 工厂模式
工厂模式是为了解决在类与类之间组合需要用到new来产生对象,从而导致的类之间紧耦合关系的问题。比如一个抽象出来的分割器,它可能是文件分割器、图片分割器、视频分割器等,如果在button的响应事件中写:void onClick(){Splite splite=new FileSplite();splite.execu();}在编译这个方法时,必须得现有FileSplite类...
2019-06-28 15:30:47 165
原创 7. Bridge Pattern 桥模式
意图;将抽象部分与它的实现部分分离,使它们可以独立地变化。当一个类有两个或多个发展方向时,比如一个软件A,要有PC版、ios版、安卓版,同时每个版又分为经典版、完美版等。如果单纯使用多继承来实现,就是这样:这样做的话有两个问题:1. 类的个数是1+n+n*m个,类很多而且各个经典版本之间很多代码重复2. 违背单一职责原则,一个类应该只有一个使其变化的原因,而这里有两个,这两个变...
2019-06-28 14:39:35 173
原创 杂记 jsp
1. 一般css样式文件要和jsp文件分开,在jsp文件中引用css:先获得应用的绝对路径,再根据应用的路径来获得应用中css文件的路径:<%pageContext.setAttribute("APP_PATH", request.getContextPath());%><link rel="stylesheet" href="${APP_PATH}/CSSs/...
2019-06-28 13:51:44 140
原创 6. Decorator Pattern 装饰器模式
装饰器模式总结:动态(用组合代替继承,在运行时赋子类)地给一个对象增加一些额外的职责。适用情况:过度地使用继承来扩展对象的功能(功能之间的组合也需要很多类来实现)导致子类的膨胀。当一个父类下面有很多相似的子类,而且子类又衍生出很多子类,如:Stream生出子类:FileStream/NetWorkStream/MemeryStream这些子类,每个又需要添加一些功能,比如加...
2019-06-26 21:18:16 171
原创 5. Singleton Pattern 单例模式—饿汉、懒汉与迭代后的懒汉
单例模式主要符合单一职能原则。当一个类的职责是一定的,而且整个程序中不需要生成第二个此类的对象,而且如果生成第二个此类的对象的话还会有问题(比如我之前写的联棋游戏,里面的棋盘就应该始终只有一个对象,如果有两个会造成混乱),为了防止生成两个对象,而且节约内存,会使用单例模式。使用单例模式的典型场景比如数据库连接类,游戏主流程控制类等。解决思路:1.不允许其他程序使用new创建该类对象。(别人...
2019-06-26 19:35:22 303
原创 4. Observer/Event Pattern(观察者模式)—C#/C++/JAVA中的实现与区别
观察者模式是为了实现类与类之间的松耦合,具体作用都是当一个事件发生时,调用所有响应方法。感觉观察者模式在c#、c++、java语言中的适用情况与意义是不一样的。一、在c#中:当一个事情发生了,多个观察者将出现反应。如人物被攻击这件事情发生了,则人物要播放被攻击动画,边上要显示攻击值,被攻击的人物要减少血量等等。对于这样的情况,我们一般的做法是,当某件事情发生时,则生成这些类的对象,逐个...
2019-06-26 14:05:49 318
原创 3. Strategy Pattern(策略模式)
当有一个算法(广义上的),它的功能是确定的,具体实现要视具体情况而定,比如计算不同国家税的算法,具体实现得看是哪个国家,那么一般想到的做法是用if-else或者switch-case来判断值,调用不同的计算函数:class CountFuncs{ void func1() { //具体实现 } void func2() { //具体实现 } void func3() { ...
2019-06-21 22:38:04 118
原创 2. Template Method(模板方法)
当一个算法分成很多步骤时,其中有些步骤是固定不变的,有些步骤是会变化的。那么一般的想法是直接把每一步都作为一个方法写出来,然后在主方法中调用:class Steps { void func0() { // 具体实现 } void func1() { // 具体实现 } void func2() { // 具体实现 } void func3() { // 具...
2019-06-21 21:55:25 138
原创 设计模式综述
设计模式的主要目的是应对变化,实现代码的复用,就是当一个软件写好了,发布了,但是要迭代更新,如何在不更改整体架构的情况下实现或扩展功能。设计模式总结了大部分问题的答案思路,并为每个答案命名,这样每次遇到相同的问题都可以复用总结的答案。设计模式也是一种架构,是基于面向对象的类的架构,一般的系统架构是模块的架构。设计模式的思想,也就是得到这个答案的思想是在稳定中找到变化,然后如何使得这个变...
2019-06-21 17:42:42 179
原创 当滑动ScrollBar时,不触发item的点击响应函数
像阴阳师的选式神时的横向列表,滑动时不能触发选中某一项:在unity中应该不需要添加额外的代码,但是具体解说可以参考:https://blog.csdn.net/fx1ts/article/details/44569083总结来说就是父控件有一个方法,在发生down/move/up事件时,如果这个方法返回true,则父控件选择插手,子控件就不再响应,而把处理权交给父控件。这里的滑动就是...
2019-06-04 10:34:50 508
唯一解的数独题目生成器
2019-12-04
KMP算法的java实现.txt
2019-11-29
在Unity中测量显示空间距离
2019-02-26
中科院ICTCLAS50_Windows分词
2019-01-02
牛津英汉词典 .txt版
2019-01-02
验证码图片的 文字样式 与 背景绘制
2019-07-05
TA创建的收藏夹 TA关注的收藏夹
TA关注的人