-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
不能4个包合并成一个吗? #23
Comments
因为在计划中,这些包分为3类:
事实上,这个库真正的核心功能(必须存在的),就只有一个 而你现在看到的 简单来说,就是“解耦”,你说的问题,我考虑过,因为我也觉得3个包装的有点麻烦,一开始就是一个包的,这就是代码设计的“纯粹性”与“易用性”之间的冲突,我最终还是选择了前者。 |
就比如说,你现在只想用 再说序列化,其实不管是现在的 Json,还是以后要加的其它序列化功能,都不是我实现的,都要依赖第三方库(现在 Json 是依赖 如果全打包在一起,假如你觉得 Json 性能又慢、数据又大,然后选择了 MemoryPack 来序列化。那么,你也不希望自己的项目里还引用着一个 |
感谢作者非常详细的解答。 namespace ThreeYardsBin
{
#region HandyIpc
//序列化接口
public interface ISerialize
{
//序列化
object Serialize(string json);
//反序列化
string Serialize(object jsonObj);
}
//内部使用方式(采用net自带的序列化)
public class NetSerialize : ISerialize
{
public object Serialize(string json) => null;
public string Serialize(object jsonObj) => null;
}
//HandyIpc 中的发送,接受。用到了序列化
public class HandyIpc
{
public static ISerialize Serialize = new NetSerialize();
public void Send(object obj)
{
string info = Serialize.Serialize(obj);
}
}
#endregion
#region 用户
//用户实现接口,采用Newtonsoft.Json方式
public class JsonSerialize : ISerialize
{
public object Serialize(string json) => null;
public string Serialize(object jsonObj) => null;
}
//用户可以自定义序列化
public class User
{
public void ABC()
{
HandyIpc.Serialize = new JsonSerialize();
HandyIpc handyIpc = new HandyIpc();
handyIpc.Send(new { });
}
}
#endregion
} 对于 |
0.0 感觉好麻烦的样子,一个简单的库要安装3个包
The text was updated successfully, but these errors were encountered: