28 Star 303 Fork 89

凉鞋 / QFramework

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
MIT

LOGO

Build Status

QFramework Intro

中文|English

QFramework is a framework. she support solid pricinple、domain design driven、event-driven、data-driven、layered、mvc、cqrs、modulization、extendable、scalable architecture. Simple but powerful! she only has 800 lines of code.can save to a note-taking app.

Architecture diagram

For Example(😂)

Schematic diagram of various situations

Architecture Rule

QFramework System Design Architecture has 4 layers:

  • Presentation Layer:ViewController Layer. Using IController interface,recive input from user and state changed event from model. In unity MonoBehaviour is on presentation layer
    • Can get System
    • Can get Model
    • Can send Command
    • Can listen Event
  • System Layer:Using ISystem interface. share IController's part of responsibility. Sharing logic shared across multiple presentation layers,suchas time system、shop system、archivement system.
    • Can get System
    • Can get Model
    • Can listen Event
    • Can send Event
  • Model Layer:Using IModel interface.Responsible for data definition, data addition, deletion, query and modification methods.
    • Can get Utility
    • Can send Event
  • Utility Layer:Using IUtility interface.Responsible for providing infrastructure, such as storage method, serialization method, network connection method, Bluetooth method, SDK, framework inheritance, etc. Nothing can be done. You can integrate third-party libraries or encapsulate APIs
  • In addition to the four layers, there is a core concept - command
    • Can get System
    • Can get Model
    • Can send Event
    • Can send Command
  • Layer Rule:
    • IController change ISystem、IModel's state by Command
    • Notify icontroller after the change of ISystem and IModel must use event or bindableproperty
    • IController can get ISystem、IModel for data query
    • ICommand cannot have state
    • The upper layer can directly obtain the lower layer, and the lower layer cannot obtain the upper object
    • Events for lower layer to upper layer communication
    • The communication between the upper layer and the lower layer is called by method (only for query and command for state change). The interaction logic of IController is special, and command can only be used

(照抄自:学生课堂笔记1

Environment

  • Unity 2018.4.x ~ 2021.x

Install

Resources

Version
QFramework.cs Implementation of qframework ontology architecture code file
QFramework.cs With Examples QFramework.cs and Examples:CounterApp、Point Point Point、CubeMaster、FlappyBird、ShootingEditor2D、SnakeGame etc (QFramework.cs included) downlowd unitypackage
QFramework.ToolKits QFramework.cs with UIKit/ActionKit/ResKit/PackageKit/AudioKit (QFramework.cs and examples included) downlowd unity package
QFramework.Toolkits.Demo.WuZiQi Gobang Demo by QFramework.Toolkits(Need Install QFramework.Toolkits) download unitypackage
QFramework.Toolkits.Demo.Saolei Mine clearance Demo by QFramework.Toolkits(Need Install QFramework.Toolkits) download unitypackage
QFramework.ToolKitsPro More Powerful Tools version based on QFramework.ToolKits (QFramework.Toolkits included) AssetStore
Community
github issue github community address
gitee issue gitee community address
ShowCase email me or publish on github's issue. My email: liangxiegame@163.com
《When The Train Buzzes For Three Seconds》 Steam|TapTap
《The First Mountain》 Steam
《Hi Eggplant》 Steam
《Under The Ghost Mountain》 Steam

Star Trends

Stargazers over time

Author

Contributors

Other Awesome Framework

  • ET:ET Unity3D Client And C# Server Framework
  • JEngine The solution that allows unity games update in runtime.
  • TinaX Framework “开箱即用”的Unity独立游戏开发工具

Code Style:

QCSharpStyleGuide

Donate:

  • 如果觉得不错可以在 Asset Store 给个 5 星哦~ give 5 star
  • 或者给此仓库一个小小的 Star~ star this repository
  • 以上这些都会转化成我们的动力,提供更好的技术服务!

Credits:

Thanks for Licenses Supporting by JetBrains Company

JetBrains的Logo

MIT License Copyright (c) 2023 凉鞋 Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

Unity3D System Design Architecture expand collapse
MIT
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/liangxiegame/QFramework.git
git@gitee.com:liangxiegame/QFramework.git
liangxiegame
QFramework
QFramework
master

Search

344bd9b3 5694891 D2dac590 5694891