unity客户端程序笔试后有感(四)

题目四:

简述工厂模式和观察者模式。写出抽象工厂或者观察者模式的代码。

答:

工厂模式,父类决定实例的生成方式,但并不决定所要生成的具体的类,具体的处理全部交给子类负责。这样就可以将生成实例的框架和实际负责生成实例的类解耦。

public abstract class Prodect
{
	public abstract void use();
}

public abstract class Factory
{
	public final Product create(String owner)
	{
		Product p = createProduct(owner);
		registerProduct(p);
		return p;
	}
	protected abstract Product createProduct(String owner);
	protected abstract void registerProduct(Product product);
}

public class IDCard extends Product
{
	private String owner;
	IDCard(String owner)
	{
		Debug.Log(owner + "制作");
		this.owner = owner;
	}
	public void use()
	{
		Debug.Log(owner + "使用");
	}
	public String getOwner()
	{
		return owner;
	}
}

public class IDCardFactory extends Factory
{
	private List owners = new ArrayList();
	protected Product createProduct(String owner)
	{
		return new IDCard(owner);
	}
	protected void registerProduct(Product product)
	{
		owners.add(((IDCard)product).getOwner())
	}
	public List getOwners()
	{
		return owners;
	}
}

public class Main
{
	public static void main()
	{
		Factory factory = new IDCardFactory();
		Product card1 = factory.create("A");
		Product card2 = factory.create("B");
		card1.use();
		card2.use();
	}
}

出自《图解设计模式——工厂模式》

观察者模式,在对象间定义一种一对多的依赖关系,以便当某对象的状态改变时,与它存在依赖关系的所有对象都能收到通知并自动更新。

出自《游戏编程模式》

这本的代码用C++写的

我觉得这位大佬写得更好一点。

unity里很重要的设计模式 - 观察者模式(Observer)

------

虽然我的老师说过,设计模式是需要有多年开发经验的人才能看懂,但是我不知道为什么好多面试笔试都喜欢考设计模式。毫无疑问的是,我在过去的一年里,用的最多的就是单例模式了,在创建数据库连接上面,用得滚瓜烂熟。不过在unity上却没有用过。

无论如何,设计模式的确是面向对象开发必学的一门课,无论看懂不看懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值