sa提权技巧之xp_regwrite替换sethc.exe
2012-07-09 09:15
197 查看
/*
* 工厂方法模式
* 定义了一个创建对象的接口,
* 但由子类决定要实例化的类是哪一个.
* 工厂方法让类把实例话推迟到子类.
*/
import java.util.ArrayList;
public class Factory {
public static void main(String[] args) {
PizzaStore nyStore = new NYPizzaStore();
PizzaStore chicagoStore = new ChicagoPizzaStore();
Pizza pizza = nyStore.orderPizza("cheese");
System.out.println("Ethan ordered a " + pizza.getName() + "\n");
pizza = chicagoStore.orderPizza("cheese");
System.out.println("Joel ordered a " + pizza.getName() + "\n");
}
}
// 这就是传说中的工厂
abstract class PizzaStore {
// 定义pizza的整个制作流程
public Pizza orderPizza(String type) {
Pizza pizza;
pizza = createPizza(type);
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
// 正真的工厂方法,推迟到子类去实现
protected abstract Pizza createPizza(String type);
}
// 具体的工厂
class NYPizzaStore extends PizzaStore {
//具体的方法不一定就是参数实现,也可以没有参数
protected Pizza createPizza(String item) {
if (item.equals("cheese")) {
return new NYStyleCheesePizza();
} else if (item.equals("veggie")) {
return new NYStyleVeggiePizza();
} else
return null;
}
}
class ChicagoPizzaStore extends PizzaStore {
protected Pizza createPizza(String item) {
if (item.equals("cheese")) {
return new ChicagoStyleCheesePizza();
} else if (item.equals("veggie")) {
return new ChicagoStyleVeggiePizza();
} else
return null;
}
}
//产品的抽象类
abstract class Pizza {
protected String name;
protected String dough;
protected String sauce;
ArrayList<String> toppings = new ArrayList<String>();
void prepare() {
System.out.println("Preparing" + name);
System.out.println("Tossing dough");
System.out.println("Adding sauce...");
System.out.println("Adding toppings: ");
for (int i = 0; i < toppings.size(); i++) {
System.out.println(" " + toppings.get(i));
}
}
void bake() {
System.out.println("Bake for 25 minutes at 350");
}
void cut() {
System.out.println("Cutting the pizza into diagonal slices");
}
void box() {
System.out.println("Place pizza in official Pizzastore box");
}
public String getName() {
return name;
}
}
//具体的产品类
class NYStyleCheesePizza extends Pizza {
public NYStyleCheesePizza() {
name = "NY Style Sauce and Cheese Pizza";
dough = "Thin Crust Dough";
sauce = "Marinara Sauce";
toppings.add("Grated Reggiano Cheese");
}
}
class ChicagoStyleCheesePizza extends Pizza {
public ChicagoStyleCheesePizza() {
name = "Chicago Style Sauce and Cheese Pizza";
dough = "Extra Thick Crust Dough";
sauce = "Plum Tomato Sauce";
toppings.add("Shredded Mozzarella Cheese");
}
void cut() {
System.out.println("Cutting the pizza into square slices");
}
}
class NYStyleVeggiePizza extends Pizza {
public NYStyleVeggiePizza() {
name = "NY Style Sauce and Veggie Pizza";
dough = "Thin Crust Dough";
sauce = "Marinara Sauce";
toppings.add("Grated Reggiano Veggie");
}
}
class ChicagoStyleVeggiePizza extends Pizza {
public ChicagoStyleVeggiePizza() {
name = "Chicago Style Sauce and Veggie Pizza";
dough = "Extra Thick Crust Dough";
sauce = "Plum Tomato Sauce";
toppings.add("Shredded Mozzarella Veggie");
}
void cut() {
System.out.println("Cutting the pizza into square slices");
}
}
本文出自 ““技”忆” 博客,请务必保留此出处http://sophi.blog.51cto.com/340461/66335
* 工厂方法模式
* 定义了一个创建对象的接口,
* 但由子类决定要实例化的类是哪一个.
* 工厂方法让类把实例话推迟到子类.
*/
import java.util.ArrayList;
public class Factory {
public static void main(String[] args) {
PizzaStore nyStore = new NYPizzaStore();
PizzaStore chicagoStore = new ChicagoPizzaStore();
Pizza pizza = nyStore.orderPizza("cheese");
System.out.println("Ethan ordered a " + pizza.getName() + "\n");
pizza = chicagoStore.orderPizza("cheese");
System.out.println("Joel ordered a " + pizza.getName() + "\n");
}
}
// 这就是传说中的工厂
abstract class PizzaStore {
// 定义pizza的整个制作流程
public Pizza orderPizza(String type) {
Pizza pizza;
pizza = createPizza(type);
pizza.prepare();
pizza.bake();
pizza.cut();
pizza.box();
return pizza;
}
// 正真的工厂方法,推迟到子类去实现
protected abstract Pizza createPizza(String type);
}
// 具体的工厂
class NYPizzaStore extends PizzaStore {
//具体的方法不一定就是参数实现,也可以没有参数
protected Pizza createPizza(String item) {
if (item.equals("cheese")) {
return new NYStyleCheesePizza();
} else if (item.equals("veggie")) {
return new NYStyleVeggiePizza();
} else
return null;
}
}
class ChicagoPizzaStore extends PizzaStore {
protected Pizza createPizza(String item) {
if (item.equals("cheese")) {
return new ChicagoStyleCheesePizza();
} else if (item.equals("veggie")) {
return new ChicagoStyleVeggiePizza();
} else
return null;
}
}
//产品的抽象类
abstract class Pizza {
protected String name;
protected String dough;
protected String sauce;
ArrayList<String> toppings = new ArrayList<String>();
void prepare() {
System.out.println("Preparing" + name);
System.out.println("Tossing dough");
System.out.println("Adding sauce...");
System.out.println("Adding toppings: ");
for (int i = 0; i < toppings.size(); i++) {
System.out.println(" " + toppings.get(i));
}
}
void bake() {
System.out.println("Bake for 25 minutes at 350");
}
void cut() {
System.out.println("Cutting the pizza into diagonal slices");
}
void box() {
System.out.println("Place pizza in official Pizzastore box");
}
public String getName() {
return name;
}
}
//具体的产品类
class NYStyleCheesePizza extends Pizza {
public NYStyleCheesePizza() {
name = "NY Style Sauce and Cheese Pizza";
dough = "Thin Crust Dough";
sauce = "Marinara Sauce";
toppings.add("Grated Reggiano Cheese");
}
}
class ChicagoStyleCheesePizza extends Pizza {
public ChicagoStyleCheesePizza() {
name = "Chicago Style Sauce and Cheese Pizza";
dough = "Extra Thick Crust Dough";
sauce = "Plum Tomato Sauce";
toppings.add("Shredded Mozzarella Cheese");
}
void cut() {
System.out.println("Cutting the pizza into square slices");
}
}
class NYStyleVeggiePizza extends Pizza {
public NYStyleVeggiePizza() {
name = "NY Style Sauce and Veggie Pizza";
dough = "Thin Crust Dough";
sauce = "Marinara Sauce";
toppings.add("Grated Reggiano Veggie");
}
}
class ChicagoStyleVeggiePizza extends Pizza {
public ChicagoStyleVeggiePizza() {
name = "Chicago Style Sauce and Veggie Pizza";
dough = "Extra Thick Crust Dough";
sauce = "Plum Tomato Sauce";
toppings.add("Shredded Mozzarella Veggie");
}
void cut() {
System.out.println("Cutting the pizza into square slices");
}
}
本文出自 ““技”忆” 博客,请务必保留此出处http://sophi.blog.51cto.com/340461/66335
相关文章推荐
- sa提开放系统下的虚拟新贵Virtualbox权技巧之xp_regwrite替换sethc.exe
- XP 快被Windows 7 替换了,记下XP的一些技巧。
- SA权限仅需xp_regwrite即可有dos shell
- 关闭XP保护。替换explorer.exe
- 安装VC++6.0的时候提示我acmboot.exe发送错误安装不了(在XP虚拟机安装碰到了实践下面可以解决)
- virtualBox中安装xp打开win8.1中exe闪退
- PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
- 提权巧用RAR.EXE
- xp技巧汇总
- Window XP驱动开发(十九) windows内核高级调试技巧(双机调试)
- 必会重构技巧(二):使用多态替换条件
- vim 替换的技巧
- VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
- Lync 小技巧-7-Test-CsMcxP2PIM-时好时坏-正常
- Win 2000/XP蓝屏解决实用技巧
- 各种提权、渗透经验技巧总结大全(下)
- 教你50招 XP技巧
- 在eclipse里全项目替换关键词及内容的技巧
- 一个新的CSS图片替换的技巧
- 技巧和诀窍:使用ASP.NET 2.0 输出缓存替换的功能实现“甜圈缓存(Donut Caching)”