as3 java对象_AS3中面向对象的编程

任何引擎或框架的一个重要规则是,无论您使用何种继承或任何实际使用,它都应该完全是可选的,以便引擎处理实体 . 因此,虽然引擎处理的具体实体可能使用复杂的继承,但引擎完全透明,因为它们被抽象为接口 .

例如,您定义了一个接口 IMovable . 引擎可以处理这个并移动这些对象 . 然后你可以提供一个默认的实现,比方说 MovableBase ,它可以但不需要通过继承或组合由其他实体重用 .

通常使用中的继承实际上倾向于破坏许多OOP原则并引入大量依赖 . 它通常被认为是OOP中的一个基本概念,但如果您将其视为实现代码重用的众多方法之一,那么您会感觉更好 .

因此,不必费心解决问题,如何构建特定组件,首先需要抽象它们以便能够应用dependency inversion principle . 这样,您将获得具有极度失去耦合的架构 . 如果一个实体被证明是不必要的复杂,或者你发现,你可以提取一些代码以便重用,或者你需要重新安排你的继承机制,那么其他代码就不会受到影响 .

你可能会发现,实际上试图将你的实体分成多层继承只会有点意义,因为事情变得不必要的冗长和奇怪的交织 . 但是,抽象实体的不同"aspects"或"roles",例如 IMovable , IBounceable , IExplodable 等,将会有所帮助 . 任何实体可以选择随意实现任何接口,因此将由引擎相应地处理 .

软件设计中最重要的一步是设计一种架构,其中不同的模块从根本上分开并通过窄接口进行交互 . 当模块变大时,然后对它应用相同的步骤,并将其重构为子模块(您可以这样做,而不必担心软件的其余部分,只是因为模块被很好地封装) . 当它看起来不自然时,不要试图将整体分成几部分 . 您将获得更多灵活的代码 .

格尔茨

back2dos

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值